Mercurial > projects > dwt-win
annotate dwt/widgets/Table.d @ 237:e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Jun 2008 03:25:36 +0200 |
parents | 8efa9bb96c53 |
children | ecb80b2a89e1 |
rev | line source |
---|---|
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 /******************************************************************************* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 * Copyright (c) 2000, 2007 IBM Corporation and others. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 * Contributors: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
67
diff
changeset
|
10 * Port to the D programming language: |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
67
diff
changeset
|
11 * Frank Benoit <benoit@tionex.de> |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 *******************************************************************************/ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 module dwt.widgets.Table; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 import dwt.DWT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 import dwt.DWTException; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 import dwt.events.SelectionEvent; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 import dwt.events.SelectionListener; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 import dwt.graphics.Font; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 import dwt.graphics.GC; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 import dwt.graphics.GCData; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import dwt.graphics.Image; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import dwt.graphics.Point; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import dwt.graphics.Rectangle; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import dwt.internal.ImageList; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import dwt.internal.win32.OS; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
27 |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
28 import dwt.widgets.Composite; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
29 import dwt.widgets.TableItem; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
30 import dwt.widgets.TableColumn; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
31 import dwt.widgets.Listener; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
32 import dwt.widgets.TypedListener; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
33 import dwt.widgets.Event; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
34 import dwt.widgets.Control; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
35 import dwt.widgets.Display; |
213 | 36 import dwt.widgets.Shell; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
37 |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
38 import dwt.dwthelper.utils; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
39 |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 * Instances of this class implement a selectable user interface |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 * object that displays a list of images and strings and issues |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 * notification when selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 * The item children that may be added to instances of this class |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * must be of type <code>TableItem</code>. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 * Style <code>VIRTUAL</code> is used to create a <code>Table</code> whose |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 * <code>TableItem</code>s are to be populated by the client on an on-demand basis |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 * instead of up-front. This can provide significant performance improvements for |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 * tables that are very large or for which <code>TableItem</code> population is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 * expensive (for example, retrieving values from an external source). |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 * Here is an example of using a <code>Table</code> with style <code>VIRTUAL</code>: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 * <code><pre> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 * final Table table = new Table (parent, DWT.VIRTUAL | DWT.BORDER); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 * table.setItemCount (1000000); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 * table.addListener (DWT.SetData, new Listener () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 * public void handleEvent (Event event) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 * TableItem item = (TableItem) event.item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 * int index = table.indexOf (item); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 * item.setText ("Item " + index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 * System.out.println (item.getText ()); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 * } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 * }); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 * </pre></code> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 * Note that although this class is a subclass of <code>Composite</code>, |
213 | 70 * it does not normally make sense to add <code>Control</code> children to |
71 * it, or set a layout on it, unless implementing something like a cell | |
72 * editor. | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 * <dl> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 * <dt><b>Styles:</b></dt> |
213 | 76 * <dd>SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION, VIRTUAL, NO_SCROLL</dd> |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 * <dt><b>Events:</b></dt> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 * <dd>Selection, DefaultSelection, SetData, MeasureItem, EraseItem, PaintItem</dd> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 * </dl> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 * Note: Only one of the styles SINGLE, and MULTI may be specified. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 * IMPORTANT: This class is <em>not</em> intended to be subclassed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
84 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
87 public class Table : Composite { |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
88 |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
89 alias Composite.computeSize computeSize; |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
90 alias Composite.setBackgroundImage setBackgroundImage; |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
91 alias Composite.setBounds setBounds; |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
92 alias Composite.sort sort; |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
93 alias Composite.update update; |
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
94 |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 TableItem [] items; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 TableColumn [] columns; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 int columnCount, customCount; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 ImageList imageList, headerImageList; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 TableItem currentItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 TableColumn sortColumn; |
213 | 101 RECT* focusRect; |
102 HWND headerToolTipHandle; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 bool ignoreCustomDraw, ignoreDrawForeground, ignoreDrawBackground, ignoreDrawFocus, ignoreDrawSelection, ignoreDrawHot; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 bool customDraw, dragStarted, explorerTheme, firstColumnImage, fixScrollWidth, tipRequested, wasSelected, wasResized; |
213 | 105 bool ignoreActivate, ignoreSelect, ignoreShrink, ignoreResize, ignoreColumnMove, ignoreColumnResize, fullRowSelect; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
106 int itemHeight, lastIndexOf, lastWidth, sortDirection, resizeCount, selectionForeground, hotIndex; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
107 static /*final*/ WNDPROC HeaderProc; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
108 static const int INSET = 4; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
109 static const int GRID_WIDTH = 1; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
110 static const int SORT_WIDTH = 10; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
111 static const int HEADER_MARGIN = 12; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
112 static const int HEADER_EXTRA = 3; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
113 static const int VISTA_EXTRA = 2; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
114 static const int EXPLORER_EXTRA = 2; |
213 | 115 static final int H_SCROLL_LIMIT = 32; |
116 static final int V_SCROLL_LIMIT = 16; | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
117 static const bool EXPLORER_THEME = true; |
80 | 118 private static /+const+/ WNDPROC TableProc; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
119 static const TCHAR[] TableClass = OS.WC_LISTVIEW; |
80 | 120 |
121 private static bool static_this_completed = false; | |
122 private static void static_this() { | |
123 if( static_this_completed ){ | |
124 return; | |
125 } | |
126 synchronized { | |
127 if( static_this_completed ){ | |
128 return; | |
129 } | |
130 WNDCLASS lpWndClass; | |
131 OS.GetClassInfo (null, TableClass.ptr, &lpWndClass); | |
132 TableProc = lpWndClass.lpfnWndProc; | |
133 static_this_completed = true; | |
134 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
135 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
137 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
138 * Constructs a new instance of this class given its parent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 * and a style value describing its behavior and appearance. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 * The style value is either one of the style constants defined in |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 * class <code>DWT</code> which is applicable to instances of this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 * class, or must be built by <em>bitwise OR</em>'ing together |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 * (that is, using the <code>int</code> "|" operator) two or more |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 * of those <code>DWT</code> style constants. The class description |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 * lists the style constants that are applicable to the class. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 * Style bits are also inherited from superclasses. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
150 * @param parent a composite control which will be the parent of the new instance (cannot be null) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
151 * @param style the style of control to construct |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 * <li>ERROR_NULL_ARGUMENT - if the parent is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
155 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
156 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
158 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
160 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
161 * @see DWT#SINGLE |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
162 * @see DWT#MULTI |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
163 * @see DWT#CHECK |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
164 * @see DWT#FULL_SELECTION |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
165 * @see DWT#HIDE_SELECTION |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
166 * @see DWT#VIRTUAL |
213 | 167 * @see DWT#NO_SCROLL |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 * @see Widget#checkSubclass |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 * @see Widget#getStyle |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
170 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
171 public this (Composite parent, int style) { |
80 | 172 static_this(); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
173 super (parent, checkStyle (style)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
176 override void _addListener (int eventType, Listener listener) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 super._addListener (eventType, listener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 switch (eventType) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 case DWT.MeasureItem: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 case DWT.EraseItem: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 case DWT.PaintItem: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 setCustomDraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 setBackgroundTransparent (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 if (OS.COMCTL32_MAJOR < 6) style |= DWT.DOUBLE_BUFFERED; |
213 | 185 if (OS.IsWinCE) OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_LABELTIP, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 break; |
82 | 187 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
191 TableItem _getItem (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 if ((style & DWT.VIRTUAL) is 0) return items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
193 if (items [index] !is null) return items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 return items [index] = new TableItem (this, DWT.NONE, -1, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
198 * Adds the listener to the collection of listeners who will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 * be notified when the user changes the receiver's selection, by sending |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 * it one of the messages defined in the <code>SelectionListener</code> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 * interface. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
203 * When <code>widgetSelected</code> is called, the item field of the event object is valid. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 * If the receiver has the <code>DWT.CHECK</code> style and the check selection changes, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 * the event object detail field contains the value <code>DWT.CHECK</code>. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 * <code>widgetDefaultSelected</code> is typically called when an item is double-clicked. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
207 * The item field of the event object is valid for default selection, but the detail field is not used. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
208 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
209 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
210 * @param listener the listener which should be notified when the user changes the receiver's selection |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
211 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
212 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
213 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
214 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
215 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 * @see SelectionListener |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 * @see #removeSelectionListener |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 * @see SelectionEvent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 public void addSelectionListener (SelectionListener listener) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 TypedListener typedListener = new TypedListener (listener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 addListener (DWT.Selection,typedListener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 addListener (DWT.DefaultSelection,typedListener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
232 override int callWindowProc (HWND hwnd, int msg, int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 return callWindowProc (hwnd, msg, wParam, lParam, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
236 int callWindowProc (HWND hwnd, int msg, int wParam, int lParam, bool forceSelect) { |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
237 if (handle is null) return 0; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 if (handle !is hwnd) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
239 return OS.CallWindowProc (HeaderProc, hwnd, msg, wParam, lParam); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 int topIndex = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 bool checkSelection = false, checkActivate = false, redraw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 switch (msg) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 /* Keyboard messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 * Feature in Windows. Windows sends LVN_ITEMACTIVATE from WM_KEYDOWN |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 * instead of WM_CHAR. This means that application code that expects |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 * to consume the key press and therefore avoid a DWT.DefaultSelection |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 * event will fail. The fix is to ignore LVN_ITEMACTIVATE when it is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
250 * caused by WM_KEYDOWN and send DWT.DefaultSelection from WM_CHAR. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
251 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
252 case OS.WM_KEYDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
253 checkActivate = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
254 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
255 case OS.WM_CHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
256 case OS.WM_IME_CHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
257 case OS.WM_KEYUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
258 case OS.WM_SYSCHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
259 case OS.WM_SYSKEYDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
260 case OS.WM_SYSKEYUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
261 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
262 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
263 /* Scroll messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
264 case OS.WM_HSCROLL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
265 case OS.WM_VSCROLL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
266 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
267 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
268 /* Resize messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
269 case OS.WM_WINDOWPOSCHANGED: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
270 redraw = findImageControl () !is null && drawCount is 0 && OS.IsWindowVisible (handle); |
213 | 271 if (redraw) { |
272 /* | |
273 * Feature in Windows. When LVM_SETBKCOLOR is used with CLR_NONE | |
274 * to make the background of the table transparent, drawing becomes | |
275 * slow. The fix is to temporarily clear CLR_NONE when redraw is | |
276 * turned off. | |
277 */ | |
278 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); | |
279 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, 0xFFFFFF); | |
280 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
281 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
282 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
283 /* Mouse messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
284 case OS.WM_LBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
285 case OS.WM_LBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
286 case OS.WM_LBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
287 case OS.WM_MBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
288 case OS.WM_MBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
289 case OS.WM_MBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
290 case OS.WM_MOUSEHOVER: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
291 case OS.WM_MOUSELEAVE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
292 case OS.WM_MOUSEMOVE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
293 case OS.WM_MOUSEWHEEL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
294 case OS.WM_RBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
295 case OS.WM_RBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
296 case OS.WM_RBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
297 case OS.WM_XBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
298 case OS.WM_XBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
299 case OS.WM_XBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
300 checkSelection = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
301 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
302 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
303 /* Other messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
304 case OS.WM_SETFONT: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
305 case OS.WM_TIMER: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
306 if (findImageControl () !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
307 topIndex = OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
308 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
309 } |
82 | 310 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
311 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
312 bool oldSelected = wasSelected; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
313 if (checkSelection) wasSelected = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
314 if (checkActivate) ignoreActivate = true; |
213 | 315 |
316 /* | |
317 * Bug in Windows. For some reason, when the WS_EX_COMPOSITED | |
318 * style is set in a parent of a table and the header is visible, | |
319 * Windows issues an endless stream of WM_PAINT messages. The | |
320 * fix is to call BeginPaint() and EndPaint() outside of WM_PAINT | |
321 * and pass the paint HDC in to the window proc. | |
322 */ | |
323 bool fixPaint = false; | |
324 if (msg is OS.WM_PAINT) { | |
325 int bits0 = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
326 if ((bits0 & OS.LVS_NOCOLUMNHEADER) is 0) { | |
327 HWND hwndParent = OS.GetParent (handle), hwndOwner = null; | |
328 while (hwndParent !is null) { | |
329 int bits1 = OS.GetWindowLong (hwndParent, OS.GWL_EXSTYLE); | |
330 if ((bits1 & OS.WS_EX_COMPOSITED) !is 0) { | |
331 fixPaint = true; | |
332 break; | |
333 } | |
334 hwndOwner = OS.GetWindow (hwndParent, OS.GW_OWNER); | |
335 if (hwndOwner !is null) break; | |
336 hwndParent = OS.GetParent (hwndParent); | |
337 } | |
338 } | |
339 } | |
340 | |
341 /* Remove the scroll bars that Windows keeps automatically adding */ | |
342 bool fixScroll = false; | |
343 if ((style & DWT.H_SCROLL) is 0 || (style & DWT.V_SCROLL) is 0) { | |
344 switch (msg) { | |
345 case OS.WM_PAINT: | |
346 case OS.WM_NCPAINT: | |
347 case OS.WM_WINDOWPOSCHANGING: { | |
348 int bits = OS.GetWindowLong (hwnd, OS.GWL_STYLE); | |
349 if ((style & DWT.H_SCROLL) is 0 && (bits & OS.WS_HSCROLL) !is 0) { | |
350 fixScroll = true; | |
351 bits &= ~OS.WS_HSCROLL; | |
352 } | |
353 if ((style & DWT.V_SCROLL) is 0 && (bits & OS.WS_VSCROLL) !is 0) { | |
354 fixScroll = true; | |
355 bits &= ~OS.WS_VSCROLL; | |
356 } | |
357 if (fixScroll) OS.SetWindowLong (handle, OS.GWL_STYLE, bits); | |
358 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
359 default: |
213 | 360 } |
361 } | |
362 int /*long*/ code = 0; | |
363 if (fixPaint) { | |
364 PAINTSTRUCT ps; | |
365 auto hDC = OS.BeginPaint (hwnd, &ps); | |
217
8efa9bb96c53
added overrides and reverted OS.CallWindowProc
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
366 code = OS.CallWindowProc (TableProc, hwnd, OS.WM_PAINT, cast(int)hDC, lParam); |
213 | 367 OS.EndPaint (hwnd, &ps); |
368 } else { | |
217
8efa9bb96c53
added overrides and reverted OS.CallWindowProc
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
369 code = OS.CallWindowProc (TableProc, hwnd, msg, wParam, lParam); |
213 | 370 } |
371 if (fixScroll) { | |
372 int flags = OS.RDW_FRAME | OS.RDW_INVALIDATE; | |
373 OS.RedrawWindow (handle, null, null, flags); | |
374 } | |
375 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 if (checkActivate) ignoreActivate = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 if (checkSelection) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 if (wasSelected || forceSelect) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
379 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 int index = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 if (index !is -1) event.item = _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 postEvent (DWT.Selection, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
383 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
384 wasSelected = oldSelected; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
385 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
386 switch (msg) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 /* Keyboard messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
388 case OS.WM_KEYDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 case OS.WM_CHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 case OS.WM_IME_CHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 case OS.WM_KEYUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 case OS.WM_SYSCHAR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
393 case OS.WM_SYSKEYDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 case OS.WM_SYSKEYUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 /* Scroll messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 case OS.WM_HSCROLL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 case OS.WM_VSCROLL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
401 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
402 /* Resize messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 case OS.WM_WINDOWPOSCHANGED: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 if (redraw) { |
213 | 405 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, OS.CLR_NONE); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
406 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
407 OS.InvalidateRect (handle, null, true); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
408 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
409 if (hwndHeader !is null) OS.InvalidateRect (hwndHeader, null, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
410 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
411 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
412 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
413 /* Mouse messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
414 case OS.WM_LBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
415 case OS.WM_LBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
416 case OS.WM_LBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
417 case OS.WM_MBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
418 case OS.WM_MBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
419 case OS.WM_MBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
420 case OS.WM_MOUSEHOVER: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
421 case OS.WM_MOUSELEAVE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
422 case OS.WM_MOUSEMOVE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
423 case OS.WM_MOUSEWHEEL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
424 case OS.WM_RBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
425 case OS.WM_RBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
426 case OS.WM_RBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
427 case OS.WM_XBUTTONDBLCLK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
428 case OS.WM_XBUTTONDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
429 case OS.WM_XBUTTONUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
430 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
431 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
432 /* Other messages */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
433 case OS.WM_SETFONT: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
434 case OS.WM_TIMER: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
435 if (findImageControl () !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
436 if (topIndex !is OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
437 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
438 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
439 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
440 } |
82 | 441 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
442 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
443 return code; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
444 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
445 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
446 static int checkStyle (int style) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
447 /* |
213 | 448 * Feature in Windows. Even when WS_HSCROLL or |
449 * WS_VSCROLL is not specified, Windows creates | |
450 * trees and tables with scroll bars. The fix | |
451 * is to set H_SCROLL and V_SCROLL. | |
452 * | |
453 * NOTE: This code appears on all platforms so that | |
454 * applications have consistent scroll bar behavior. | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
455 */ |
213 | 456 if ((style & DWT.NO_SCROLL) is 0) { |
457 style |= DWT.H_SCROLL | DWT.V_SCROLL; | |
458 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
459 return checkBits (style, DWT.SINGLE, DWT.MULTI, 0, 0, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
460 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
461 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
462 LRESULT CDDS_ITEMPOSTPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
463 auto hDC = nmcd.nmcd.hdc; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
464 if (explorerTheme && !ignoreCustomDraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
465 hotIndex = -1; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
466 if (hooks (DWT.EraseItem) && nmcd.nmcd.rc.left !is nmcd.nmcd.rc.right) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
467 OS.RestoreDC (hDC, -1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
468 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
469 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
470 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
471 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
472 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
473 * CLR_NONE to make the table transparent, Windows fills |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
474 * a black rectangle around any column that contains an |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
475 * image. The fix is clear LVS_EX_FULLROWSELECT during |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
476 * custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
477 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
478 * NOTE: Since CDIS_FOCUS is cleared during custom draw, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
479 * it is necessary to draw the focus rectangle after the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
480 * item has been drawn. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
481 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
482 if (!ignoreCustomDraw && !ignoreDrawFocus && nmcd.nmcd.rc.left !is nmcd.nmcd.rc.right) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
483 if (OS.IsWindowVisible (handle) && OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
484 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
485 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
486 int dwExStyle = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
487 if ((dwExStyle & OS.LVS_EX_FULLROWSELECT) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
488 // if ((nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
489 if (OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED) is nmcd.nmcd.dwItemSpec) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
490 if (handle is OS.GetFocus ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
491 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
492 if ((uiState & OS.UISF_HIDEFOCUS) is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
493 RECT rect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
494 rect.left = OS.LVIR_BOUNDS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
495 bool oldIgnore = ignoreCustomDraw; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
496 ignoreCustomDraw = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
497 OS.SendMessage (handle, OS. LVM_GETITEMRECT, nmcd.nmcd.dwItemSpec, &rect); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
498 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
499 int index = OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, 0, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
500 RECT itemRect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
501 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
502 itemRect.left = OS.LVIR_LABEL; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
503 OS.SendMessage (handle, OS. LVM_GETITEMRECT, index, &itemRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
504 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
505 itemRect.top = index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
506 itemRect.left = OS.LVIR_ICON; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
507 OS.SendMessage (handle, OS. LVM_GETSUBITEMRECT, nmcd.nmcd.dwItemSpec, &itemRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
508 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
509 ignoreCustomDraw = oldIgnore; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
510 rect.left = itemRect.left; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
511 OS.DrawFocusRect (nmcd.nmcd.hdc, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
512 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
513 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
514 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
515 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
516 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
517 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
518 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
519 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
520 return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
521 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
522 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
523 LRESULT CDDS_ITEMPREPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
524 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
525 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
526 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
527 * CLR_NONE to make the table transparent, Windows fills |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
528 * a black rectangle around any column that contains an |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
529 * image. The fix is clear LVS_EX_FULLROWSELECT during |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
530 * custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
531 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
532 * NOTE: It is also necessary to clear CDIS_FOCUS to stop |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
533 * the table from drawing the focus rectangle around the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
534 * first item instead of the full row. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
535 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
536 if (!ignoreCustomDraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
537 if (OS.IsWindowVisible (handle) && OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
538 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
539 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
540 int dwExStyle = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
541 if ((dwExStyle & OS.LVS_EX_FULLROWSELECT) is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
542 if ((nmcd.nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
543 nmcd.nmcd.uItemState &= ~OS.CDIS_FOCUS; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
544 OS.MoveMemory (cast(NMLVCUSTOMDRAW*)lParam, nmcd, NMLVCUSTOMDRAW.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
545 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
546 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
547 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
548 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
549 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
550 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
551 if (explorerTheme && !ignoreCustomDraw) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
552 hotIndex = (nmcd.nmcd.uItemState & OS.CDIS_HOT) !is 0 ? nmcd.nmcd.dwItemSpec : -1; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
553 if (hooks (DWT.EraseItem) && nmcd.nmcd.rc.left !is nmcd.nmcd.rc.right) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
554 OS.SaveDC (nmcd.nmcd.hdc); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
555 auto hrgn = OS.CreateRectRgn (0, 0, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
556 OS.SelectClipRgn (nmcd.nmcd.hdc, hrgn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
557 OS.DeleteObject (hrgn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
558 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
559 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
560 return new LRESULT (OS.CDRF_NOTIFYSUBITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
561 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
562 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
563 LRESULT CDDS_POSTPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
564 if (ignoreCustomDraw) return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
565 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
566 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
567 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
568 * CLR_NONE to make the table transparent, Windows fills |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
569 * a black rectangle around any column that contains an |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
570 * image. The fix is clear LVS_EX_FULLROWSELECT during |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
571 * custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
572 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
573 if (--customCount is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
574 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
575 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
576 int dwExStyle = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
577 if ((dwExStyle & OS.LVS_EX_FULLROWSELECT) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
578 int bits = OS.LVS_EX_FULLROWSELECT; |
213 | 579 /* |
580 * Feature in Windows. When LVM_SETEXTENDEDLISTVIEWSTYLE is | |
581 * used to set or clear the extended style bits and the table | |
582 * has a tooltip, the tooltip is hidden. The fix is to clear | |
583 * the tooltip before setting the bits and then reset it. | |
584 */ | |
585 int /*long*/ hwndToolTip = OS.SendMessage (handle, OS.LVM_SETTOOLTIPS, 0, 0); | |
117 | 586 static if (OS.IsWinCE) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
587 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
588 bool damaged = cast(bool) OS.GetUpdateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
589 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, bits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
590 OS.ValidateRect (handle, null); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
591 if (damaged) OS.InvalidateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
592 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
593 auto rgn = OS.CreateRectRgn (0, 0, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
594 int result = OS.GetUpdateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
595 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, bits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
596 OS.ValidateRect (handle, null); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
597 if (result !is OS.NULLREGION) OS.InvalidateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
598 OS.DeleteObject (rgn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
599 } |
213 | 600 /* |
601 * Bug in Windows. Despite the documentation, LVM_SETTOOLTIPS | |
602 * uses WPARAM instead of LPARAM for the new tooltip The fix | |
603 * is to put the tooltip in both parameters. | |
604 */ | |
605 hwndToolTip = OS.SendMessage (handle, OS.LVM_SETTOOLTIPS, hwndToolTip, hwndToolTip); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
606 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
607 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
608 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
609 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
610 return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
611 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
612 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
613 LRESULT CDDS_PREPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
614 if (ignoreCustomDraw) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
615 return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
616 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
617 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
618 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
619 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
620 * CLR_NONE to make the table transparent, Windows fills |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
621 * a black rectangle around any column that contains an |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
622 * image. The fix is clear LVS_EX_FULLROWSELECT during |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
623 * custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
624 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
625 if (customCount++ is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
626 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
627 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
628 int dwExStyle = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
629 if ((dwExStyle & OS.LVS_EX_FULLROWSELECT) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
630 int bits = OS.LVS_EX_FULLROWSELECT; |
213 | 631 /* |
632 * Feature in Windows. When LVM_SETEXTENDEDLISTVIEWSTYLE is | |
633 * used to set or clear the extended style bits and the table | |
634 * has a tooltip, the tooltip is hidden. The fix is to clear | |
635 * the tooltip before setting the bits and then reset it. | |
636 */ | |
637 auto hwndToolTip = OS.SendMessage (handle, OS.LVM_SETTOOLTIPS, 0, 0); | |
117 | 638 static if (OS.IsWinCE) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
639 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
640 bool damaged = cast(bool) OS.GetUpdateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
641 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
642 OS.ValidateRect (handle, null); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
643 if (damaged) OS.InvalidateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
644 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
645 auto rgn = OS.CreateRectRgn (0, 0, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
646 int result = OS.GetUpdateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
647 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
648 OS.ValidateRect (handle, null); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
649 if (result !is OS.NULLREGION) OS.InvalidateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
650 OS.DeleteObject (rgn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
651 } |
213 | 652 /* |
653 * Bug in Windows. Despite the documentation, LVM_SETTOOLTIPS | |
654 * uses WPARAM instead of LPARAM for the new tooltip The fix | |
655 * is to put the tooltip in both parameters. | |
656 */ | |
657 hwndToolTip = OS.SendMessage (handle, OS.LVM_SETTOOLTIPS, hwndToolTip, hwndToolTip); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
658 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
659 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
660 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
661 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
662 if (OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
663 bool draw = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
664 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
665 * Feature in Windows. On Vista using the explorer theme, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
666 * Windows draws a vertical line to separate columns. When |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
667 * there is only a single column, the line looks strange. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
668 * The fix is to draw the background using custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
669 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
670 if (explorerTheme && columnCount is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
671 auto hDC = nmcd.nmcd.hdc; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
672 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
673 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
674 if (OS.IsWindowEnabled (handle) || findImageControl () !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
675 drawBackground (hDC, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
676 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
677 fillBackground (hDC, OS.GetSysColor (OS.COLOR_3DFACE), &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
678 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
679 draw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
680 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
681 if (draw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
682 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
683 if (control !is null && control.backgroundImage !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
684 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
685 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
686 fillImageBackground (nmcd.nmcd.hdc, control, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
687 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
688 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
689 if (OS.IsWindowEnabled (handle)) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
690 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
691 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
692 if (control is null) control = this; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
693 fillBackground (nmcd.nmcd.hdc, control.getBackgroundPixel (), &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
694 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
695 if (sortColumn !is null && sortDirection !is DWT.NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
696 int index = indexOf (sortColumn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
697 if (index !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
698 parent.forceResize (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
699 int clrSortBk = getSortColumnPixel (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
700 RECT columnRect, headerRect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
701 OS.GetClientRect (handle, &columnRect); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
702 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
703 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &headerRect) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
704 OS.MapWindowPoints (hwndHeader, handle, cast(POINT*) &headerRect, 2); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
705 columnRect.left = headerRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
706 columnRect.right = headerRect.right; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
707 if (OS.IntersectRect(&columnRect, &columnRect, &rect)) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
708 fillBackground (nmcd.nmcd.hdc, clrSortBk, &columnRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
709 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
710 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
711 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
712 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
713 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
714 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
715 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
716 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
717 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
718 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
719 return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
720 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
721 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
722 LRESULT CDDS_SUBITEMPOSTPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
723 if (ignoreCustomDraw) return null; |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
724 if (nmcd.nmcd.rc.left is nmcd.nmcd.rc.right) return new LRESULT (OS.CDRF_DODEFAULT); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
725 auto hDC = nmcd.nmcd.hdc; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
726 if (ignoreDrawForeground) OS.RestoreDC (hDC, -1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
727 if (OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
728 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
729 * Feature in Windows. When there is a sort column, the sort column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
730 * color draws on top of the background color for an item. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
731 * is to clear the sort column in CDDS_SUBITEMPREPAINT, and reset it |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
732 * in CDDS_SUBITEMPOSTPAINT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
733 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
734 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) !is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
735 if ((sortDirection & (DWT.UP | DWT.DOWN)) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
736 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
737 int oldColumn = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOLUMN, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
738 if (oldColumn is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
739 int newColumn = indexOf (sortColumn); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
740 int result = 0; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
741 HRGN rgn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
742 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
743 rgn = OS.CreateRectRgn (0, 0, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
744 result = OS.GetUpdateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
745 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
746 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, newColumn, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
747 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
748 OS.ValidateRect (handle, null); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
749 if (result !is OS.NULLREGION) OS.InvalidateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
750 OS.DeleteObject (rgn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
751 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
752 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
753 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
754 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
755 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
756 if (hooks (DWT.PaintItem)) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
757 TableItem item = _getItem (nmcd.nmcd.dwItemSpec); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
758 sendPaintItemEvent (item, nmcd); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
759 //widget could be disposed at this point |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
760 } |
213 | 761 if (!ignoreDrawFocus && focusRect !is null) { |
762 OS.SetTextColor (nmcd.nmcd.hdc, 0); | |
763 OS.SetBkColor (nmcd.nmcd.hdc, 0xFFFFFF); | |
764 OS.DrawFocusRect (nmcd.nmcd.hdc, focusRect); | |
765 focusRect = null; | |
766 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
767 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
768 return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
769 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
770 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
771 LRESULT CDDS_SUBITEMPREPAINT (NMLVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
772 auto hDC = nmcd.nmcd.hdc; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
773 if (explorerTheme && !ignoreCustomDraw && hooks (DWT.EraseItem) && (nmcd.nmcd.rc.left !is nmcd.nmcd.rc.right)) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
774 OS.RestoreDC (hDC, -1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
775 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
776 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
777 * Feature in Windows. When a new table item is inserted |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
778 * using LVM_INSERTITEM in a table that is transparent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
779 * (ie. LVM_SETBKCOLOR has been called with CLR_NONE), |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
780 * TVM_INSERTITEM calls NM_CUSTOMDRAW before the new item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
781 * has been added to the array. The fix is to check for |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
782 * null. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
783 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
784 TableItem item = _getItem (nmcd.nmcd.dwItemSpec); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
785 if (item is null) return null; |
213 | 786 HFONT hFont = item.fontHandle (nmcd.iSubItem); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
787 if (hFont !is cast(HFONT)-1) OS.SelectObject (hDC, hFont); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
788 if (ignoreCustomDraw || (nmcd.nmcd.rc.left is nmcd.nmcd.rc.right)) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
789 return new LRESULT (hFont is cast(HFONT)-1 ? OS.CDRF_DODEFAULT : OS.CDRF_NEWFONT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
790 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
791 int code = OS.CDRF_DODEFAULT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
792 selectionForeground = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
793 ignoreDrawForeground = ignoreDrawSelection = ignoreDrawFocus = ignoreDrawBackground = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
794 if (OS.IsWindowVisible (handle)) { |
213 | 795 Event measureEvent = null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
796 if (hooks (DWT.MeasureItem)) { |
213 | 797 measureEvent = sendMeasureItemEvent (item, nmcd.nmcd.dwItemSpec, nmcd.iSubItem, nmcd.nmcd.hdc); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
798 if (isDisposed () || item.isDisposed ()) return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
799 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
800 if (hooks (DWT.EraseItem)) { |
213 | 801 sendEraseItemEvent (item, nmcd, lParam, measureEvent); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
802 if (isDisposed () || item.isDisposed ()) return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
803 code |= OS.CDRF_NOTIFYPOSTPAINT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
804 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
805 if (ignoreDrawForeground || hooks (DWT.PaintItem)) code |= OS.CDRF_NOTIFYPOSTPAINT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
806 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
807 int clrText = item.cellForeground !is null ? item.cellForeground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
808 if (clrText is -1) clrText = item.foreground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
809 int clrTextBk = item.cellBackground !is null ? item.cellBackground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
810 if (clrTextBk is -1) clrTextBk = item.background; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
811 if (selectionForeground !is -1) clrText = selectionForeground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
812 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
813 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
814 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
815 * CLR_NONE to make the table transparent, Windows draws |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
816 * a black rectangle around any column that contains an |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
817 * image. The fix is emulate LVS_EX_FULLROWSELECT by |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
818 * drawing the selection. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
819 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
820 if (OS.IsWindowVisible (handle) && OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
821 if (!explorerTheme && !ignoreDrawSelection && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
822 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
823 if ((bits & OS.LVS_EX_FULLROWSELECT) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
824 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
825 * Bug in Windows. For some reason, CDIS_SELECTED always set, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
826 * even for items that are not selected. The fix is to get |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
827 * the selection state from the item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
828 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
829 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
830 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
831 lvItem.stateMask = OS.LVIS_SELECTED; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
832 lvItem.iItem = nmcd.nmcd.dwItemSpec; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
833 int result = OS.SendMessage (handle, OS.LVM_GETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
834 if ((result !is 0 && (lvItem.state & OS.LVIS_SELECTED) !is 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
835 int clrSelection = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
836 if (nmcd.iSubItem is 0) { |
213 | 837 if (OS.GetFocus () is handle || display.getHighContrast ()) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
838 clrSelection = OS.GetSysColor (OS.COLOR_HIGHLIGHT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
839 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
840 if ((style & DWT.HIDE_SELECTION) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
841 clrSelection = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
842 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
843 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
844 } else { |
213 | 845 if (OS.GetFocus () is handle || display.getHighContrast ()) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
846 clrText = OS.GetSysColor (OS.COLOR_HIGHLIGHTTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
847 clrTextBk = clrSelection = OS.GetSysColor (OS.COLOR_HIGHLIGHT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
848 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
849 if ((style & DWT.HIDE_SELECTION) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
850 clrTextBk = clrSelection = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
851 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
852 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
853 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
854 if (clrSelection !is -1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
855 RECT rect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, nmcd.iSubItem !is 0, true, false, hDC); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
856 fillBackground (hDC, clrSelection, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
857 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
858 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
859 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
860 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
861 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
862 if (!ignoreDrawForeground) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
863 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
864 * Bug in Windows. When the attributes are for one cell in a table, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
865 * Windows does not reset them for the next cell. As a result, all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
866 * subsequent cells are drawn using the previous font, foreground and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
867 * background colors. The fix is to set the all attributes when any |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
868 * attribute could have changed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
869 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
870 bool hasAttributes = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
871 if (hFont is cast(HFONT)-1 && clrText is -1 && clrTextBk is -1) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
872 if (item.cellForeground is null && item.cellBackground is null && item.cellFont is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
873 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
874 int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
875 if (count is 1) hasAttributes = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
876 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
877 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
878 if (hasAttributes) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
879 if (hFont is cast(HFONT)-1) hFont = cast(HFONT) OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
880 OS.SelectObject (hDC, hFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
881 if (OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
882 nmcd.clrText = clrText is -1 ? getForegroundPixel () : clrText; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
883 if (clrTextBk is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
884 nmcd.clrTextBk = OS.CLR_NONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
885 if (selectionForeground is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
886 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
887 if (control is null) control = this; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
888 if (control.backgroundImage is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
889 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) !is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
890 nmcd.clrTextBk = control.getBackgroundPixel (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
891 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
892 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
893 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
894 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
895 nmcd.clrTextBk = selectionForeground !is -1 ? OS.CLR_NONE : clrTextBk; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
896 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
897 OS.MoveMemory (lParam, nmcd, NMLVCUSTOMDRAW.sizeof); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
898 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
899 code |= OS.CDRF_NEWFONT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
900 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
901 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
902 if (OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
903 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
904 * Feature in Windows. When there is a sort column, the sort column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
905 * color draws on top of the background color for an item. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
906 * is to clear the sort column in CDDS_SUBITEMPREPAINT, and reset it |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
907 * in CDDS_SUBITEMPOSTPAINT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
908 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
909 if (clrTextBk !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
910 int oldColumn = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOLUMN, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
911 if (oldColumn !is -1 && oldColumn is nmcd.iSubItem) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
912 int result = 0; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
913 HRGN rgn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
914 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
915 rgn = OS.CreateRectRgn (0, 0, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
916 result = OS.GetUpdateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
917 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
918 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, -1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
919 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
920 OS.ValidateRect (handle, null); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
921 if (result !is OS.NULLREGION) OS.InvalidateRgn (handle, rgn, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
922 OS.DeleteObject (rgn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
923 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
924 code |= OS.CDRF_NOTIFYPOSTPAINT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
925 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
926 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
927 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
928 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
929 * Feature in Windows. When the table is disabled, it draws |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
930 * with a gray background but does not gray the text. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
931 * is to explicitly gray the text. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
932 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
933 nmcd.clrText = OS.GetSysColor (OS.COLOR_GRAYTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
934 if (findImageControl () !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
935 nmcd.clrTextBk = OS.CLR_NONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
936 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
937 nmcd.clrTextBk = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
938 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
939 nmcd.nmcd.uItemState &= ~OS.CDIS_SELECTED; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
940 OS.MoveMemory (lParam, nmcd, NMLVCUSTOMDRAW.sizeof); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
941 code |= OS.CDRF_NEWFONT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
942 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
943 return new LRESULT (code); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
944 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
945 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
946 override void checkBuffered () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
947 super.checkBuffered (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
948 if (OS.COMCTL32_MAJOR >= 6) style |= DWT.DOUBLE_BUFFERED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
949 if ((style & DWT.VIRTUAL) !is 0) style |= DWT.DOUBLE_BUFFERED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
950 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
951 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
952 bool checkData (TableItem item, bool redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
953 if ((style & DWT.VIRTUAL) is 0) return true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
954 return checkData (item, indexOf (item), redraw); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
955 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
956 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
957 bool checkData (TableItem item, int index, bool redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
958 if ((style & DWT.VIRTUAL) is 0) return true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
959 if (!item.cached) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
960 item.cached = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
961 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
962 event.item = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
963 event.index = index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
964 currentItem = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
965 sendEvent (DWT.SetData, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
966 //widget could be disposed at this point |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
967 currentItem = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
968 if (isDisposed () || item.isDisposed ()) return false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
969 if (redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
970 if (!setScrollWidth (item, false)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
971 item.redraw (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
972 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
973 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
974 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
975 return true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
976 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
977 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
978 override bool checkHandle (HWND hwnd) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
979 if (hwnd is handle) return true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
980 return hwnd is cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
981 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
982 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
983 override protected void checkSubclass () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
984 if (!isValidSubclass ()) error (DWT.ERROR_INVALID_SUBCLASS); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
985 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
986 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
987 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
988 * Clears the item at the given zero-relative index in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
989 * The text, icon and other attributes of the item are set to the default |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
990 * value. If the table was created with the <code>DWT.VIRTUAL</code> style, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
991 * these attributes are requested again as needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
992 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
993 * @param index the index of the item to clear |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
994 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
995 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
996 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
997 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
998 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
999 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1000 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1001 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1002 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1003 * @see DWT#VIRTUAL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1004 * @see DWT#SetData |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1005 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1006 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1007 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1008 public void clear (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1009 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1010 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1011 if (!(0 <= index && index < count)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1012 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1013 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1014 if (item !is currentItem) item.clear (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1015 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1016 * Bug in Windows. Despite the fact that every item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1017 * table always has LPSTR_TEXTCALLBACK, Windows caches the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1018 * bounds for the selected items. This means that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1019 * when you change the string to be something else, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1020 * correctly asks you for the new string but when the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1021 * is selected, the selection draws using the bounds of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1022 * previous item. The fix is to reset LPSTR_TEXTCALLBACK |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1023 * even though it has not changed, causing Windows to flush |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1024 * cached bounds. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1025 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1026 if ((style & DWT.VIRTUAL) is 0 && item.cached) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1027 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1028 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_INDENT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1029 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1030 lvItem.iItem = index; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1031 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1032 item.cached = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1033 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1034 if (currentItem is null && drawCount is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1035 OS.SendMessage (handle, OS.LVM_REDRAWITEMS, index, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1036 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1037 setScrollWidth (item, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1038 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1039 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1040 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1041 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1042 * Removes the items from the receiver which are between the given |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1043 * zero-relative start and end indices (inclusive). The text, icon |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1044 * and other attributes of the items are set to their default values. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1045 * If the table was created with the <code>DWT.VIRTUAL</code> style, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1046 * these attributes are requested again as needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1047 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1048 * @param start the start index of the item to clear |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1049 * @param end the end index of the item to clear |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1050 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1051 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1052 * <li>ERROR_INVALID_RANGE - if either the start or end are not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1053 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1054 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1055 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1056 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1057 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1058 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1059 * @see DWT#VIRTUAL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1060 * @see DWT#SetData |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1061 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1062 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1063 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1064 public void clear (int start, int end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1065 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1066 if (start > end) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1067 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1068 if (!(0 <= start && start <= end && end < count)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1069 error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1070 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1071 if (start is 0 && end is count - 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1072 clearAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1073 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1074 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1075 bool cleared = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1076 for (int i=start; i<=end; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1077 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1078 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1079 if (item !is currentItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1080 cleared = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1081 item.clear (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1082 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1083 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1084 * Bug in Windows. Despite the fact that every item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1085 * table always has LPSTR_TEXTCALLBACK, Windows caches the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1086 * bounds for the selected items. This means that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1087 * when you change the string to be something else, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1088 * correctly asks you for the new string but when the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1089 * is selected, the selection draws using the bounds of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1090 * previous item. The fix is to reset LPSTR_TEXTCALLBACK |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1091 * even though it has not changed, causing Windows to flush |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1092 * cached bounds. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1093 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1094 if ((style & DWT.VIRTUAL) is 0 && item.cached) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1095 //if (lvItem is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1096 //lvItem = new LVITEM (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1097 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_INDENT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1098 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1099 //} |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1100 lvItem.iItem = i; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1101 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1102 item.cached = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1103 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1104 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1105 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1106 if (cleared) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1107 if (currentItem is null && drawCount is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1108 OS.SendMessage (handle, OS.LVM_REDRAWITEMS, start, end); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1109 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1110 TableItem item = start is end ? items [start] : null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1111 setScrollWidth (item, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1112 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1113 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1114 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1115 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1116 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1117 * Clears the items at the given zero-relative indices in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1118 * The text, icon and other attributes of the items are set to their default |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1119 * values. If the table was created with the <code>DWT.VIRTUAL</code> style, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1120 * these attributes are requested again as needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1121 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1122 * @param indices the array of indices of the items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1123 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1124 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1125 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1126 * <li>ERROR_NULL_ARGUMENT - if the indices array is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1127 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1128 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1129 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1130 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1131 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1132 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1133 * @see DWT#VIRTUAL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1134 * @see DWT#SetData |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1135 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1136 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1137 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1138 public void clear (int [] indices) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1139 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1140 if (indices is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1141 if (indices.length is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1142 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1143 for (int i=0; i<indices.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1144 if (!(0 <= indices [i] && indices [i] < count)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1145 error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1146 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1147 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1148 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1149 bool cleared = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1150 for (int i=0; i<indices.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1151 int index = indices [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1152 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1153 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1154 if (item !is currentItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1155 cleared = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1156 item.clear (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1157 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1158 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1159 * Bug in Windows. Despite the fact that every item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1160 * table always has LPSTR_TEXTCALLBACK, Windows caches the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1161 * bounds for the selected items. This means that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1162 * when you change the string to be something else, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1163 * correctly asks you for the new string but when the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1164 * is selected, the selection draws using the bounds of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1165 * previous item. The fix is to reset LPSTR_TEXTCALLBACK |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1166 * even though it has not changed, causing Windows to flush |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1167 * cached bounds. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1168 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1169 if ((style & DWT.VIRTUAL) is 0 && item.cached) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1170 //if (lvItem is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1171 //lvItem = new LVITEM (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1172 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_INDENT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1173 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1174 //} |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1175 lvItem.iItem = i; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1176 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1177 item.cached = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1178 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1179 if (currentItem is null && drawCount is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1180 OS.SendMessage (handle, OS.LVM_REDRAWITEMS, index, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1181 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1182 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1183 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1184 if (cleared) setScrollWidth (null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1185 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1186 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1187 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1188 * Clears all the items in the receiver. The text, icon and other |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1189 * attributes of the items are set to their default values. If the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1190 * table was created with the <code>DWT.VIRTUAL</code> style, these |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1191 * attributes are requested again as needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1192 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1193 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1194 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1195 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1196 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1197 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1198 * @see DWT#VIRTUAL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1199 * @see DWT#SetData |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1200 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1201 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1202 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1203 public void clearAll () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1204 checkWidget (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1205 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1206 bool cleared = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1207 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1208 for (int i=0; i<count; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1209 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1210 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1211 if (item !is currentItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1212 cleared = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1213 item.clear (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1214 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1215 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1216 * Bug in Windows. Despite the fact that every item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1217 * table always has LPSTR_TEXTCALLBACK, Windows caches the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1218 * bounds for the selected items. This means that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1219 * when you change the string to be something else, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1220 * correctly asks you for the new string but when the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1221 * is selected, the selection draws using the bounds of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1222 * previous item. The fix is to reset LPSTR_TEXTCALLBACK |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1223 * even though it has not changed, causing Windows to flush |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1224 * cached bounds. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1225 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1226 if ((style & DWT.VIRTUAL) is 0 && item.cached) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1227 //if (lvItem is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1228 //lvItem = new LVITEM (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1229 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_INDENT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1230 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1231 //} |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1232 lvItem.iItem = i; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1233 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1234 item.cached = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1235 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1236 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1237 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1238 if (cleared) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1239 if (currentItem is null && drawCount is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1240 OS.SendMessage (handle, OS.LVM_REDRAWITEMS, 0, count - 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1241 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1242 setScrollWidth (null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1243 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1244 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1245 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
1246 override public Point computeSize (int wHint, int hHint, bool changed) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1247 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1248 if (fixScrollWidth) setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1249 //This code is intentionally commented |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1250 // if (itemHeight is -1 && hooks (DWT.MeasureItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1251 // int i = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1252 // TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1253 // if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1254 // int hDC = OS.GetDC (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1255 // int oldFont = 0, newFont = OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1256 // if (newFont !is 0) oldFont = OS.SelectObject (hDC, newFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1257 // int index = 0, count = Math.max (1, columnCount); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1258 // while (index < count) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1259 // int hFont = item.cellFont !is null ? item.cellFont [index] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1260 // if (hFont is -1) hFont = item.font; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1261 // if (hFont !is -1) hFont = OS.SelectObject (hDC, hFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1262 // sendMeasureItemEvent (item, i, index, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1263 // if (hFont !is -1) hFont = OS.SelectObject (hDC, hFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1264 // if (isDisposed () || item.isDisposed ()) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1265 // index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1266 // } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1267 // if (newFont !is 0) OS.SelectObject (hDC, oldFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1268 // OS.ReleaseDC (handle, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1269 // } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1270 // } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1271 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1272 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1273 OS.GetWindowRect (hwndHeader, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1274 int height = rect.bottom - rect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1275 int bits = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1276 if (wHint !is DWT.DEFAULT) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1277 bits |= wHint & 0xFFFF; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1278 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1279 int width = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1280 int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1281 for (int i=0; i<count; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1282 width += OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, i, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1283 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1284 bits |= width & 0xFFFF; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1285 } |
213 | 1286 int /*long*/ result = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, -1, OS.MAKELPARAM (bits, 0xFFFF)); |
1287 int width = OS.LOWORD (result); | |
1288 int /*long*/ empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0); | |
1289 int /*long*/ oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0); | |
1290 int itemHeight = OS.HIWORD (oneItem) - OS.HIWORD (empty); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1291 height += OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0) * itemHeight; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1292 if (width is 0) width = DEFAULT_WIDTH; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1293 if (height is 0) height = DEFAULT_HEIGHT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1294 if (wHint !is DWT.DEFAULT) width = wHint; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1295 if (hHint !is DWT.DEFAULT) height = hHint; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1296 int border = getBorderWidth (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1297 width += border * 2; height += border * 2; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1298 if ((style & DWT.V_SCROLL) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1299 width += OS.GetSystemMetrics (OS.SM_CXVSCROLL); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1300 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1301 if ((style & DWT.H_SCROLL) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1302 height += OS.GetSystemMetrics (OS.SM_CYHSCROLL); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1303 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1304 return new Point (width, height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1305 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1306 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
1307 override void createHandle () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1308 super.createHandle (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1309 state &= ~(CANVAS | THEME_BACKGROUND); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1310 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1311 /* Use the Explorer theme */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1312 if (EXPLORER_THEME) { |
213 | 1313 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0) && OS.IsAppThemed ()) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1314 explorerTheme = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1315 OS.SetWindowTheme (handle, Display.EXPLORER.ptr, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1316 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1317 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1318 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1319 /* Get the header window proc */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1320 if (HeaderProc is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1321 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 1322 HeaderProc = cast(WNDPROC) OS.GetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1323 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1324 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1325 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1326 * Feature in Windows. In version 5.8 of COMCTL32.DLL, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1327 * if the font is changed for an item, the bounds for the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1328 * item are not updated, causing the text to be clipped. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1329 * The fix is to detect the version of COMCTL32.DLL, and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1330 * if it is one of the versions with the problem, then |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1331 * use version 5.00 of the control (a version that does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1332 * not have the problem). This is the recommended work |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1333 * around from the MSDN. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1334 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1335 static if (!OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1336 if (OS.COMCTL32_MAJOR < 6) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1337 OS.SendMessage (handle, OS.CCM_SETVERSION, 5, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1338 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1339 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1340 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1341 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1342 * This code is intentionally commented. According to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1343 * the documentation, setting the default item size is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1344 * supposed to improve performance. By experimentation, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1345 * this does not seem to have much of an effect. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1346 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1347 // OS.SendMessage (handle, OS.LVM_SETITEMCOUNT, 1024 * 2, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1348 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1349 /* Set the checkbox image list */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1350 if ((style & DWT.CHECK) !is 0) { |
213 | 1351 int /*long*/ empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0); |
1352 int /*long*/ oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0); | |
1353 int width = OS.HIWORD (oneItem) - OS.HIWORD (empty), height = width; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1354 setCheckboxImageList (width, height, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1355 OS.SendMessage (handle, OS. LVM_SETCALLBACKMASK, OS.LVIS_STATEIMAGEMASK, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1356 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1357 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1358 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1359 * Feature in Windows. When the control is created, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1360 * it does not use the default system font. A new HFONT |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1361 * is created and destroyed when the control is destroyed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1362 * This means that a program that queries the font from |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1363 * this control, uses the font in another control and then |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1364 * destroys this control will have the font unexpectedly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1365 * destroyed in the other control. The fix is to assign |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1366 * the font ourselves each time the control is created. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1367 * The control will not destroy a font that it did not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1368 * create. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1369 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1370 auto hFont = OS.GetStockObject (OS.SYSTEM_FONT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1371 OS.SendMessage (handle, OS.WM_SETFONT, hFont, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1372 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1373 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1374 * Bug in Windows. When the first column is inserted |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1375 * without setting the header text, Windows will never |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1376 * allow the header text for the first column to be set. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1377 * The fix is to set the text to an empty string when |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1378 * the column is inserted. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1379 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1380 LVCOLUMN lvColumn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1381 lvColumn.mask = OS.LVCF_TEXT | OS.LVCF_WIDTH; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1382 auto hHeap = OS.GetProcessHeap (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1383 auto pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, TCHAR.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1384 lvColumn.pszText = pszText; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1385 OS.SendMessage (handle, OS.LVM_INSERTCOLUMN, 0, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1386 OS.HeapFree (hHeap, 0, pszText); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1387 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1388 /* Set the extended style bits */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1389 int bits1 = OS.LVS_EX_LABELTIP; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1390 if ((style & DWT.FULL_SELECTION) !is 0) bits1 |= OS.LVS_EX_FULLROWSELECT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1391 if (OS.COMCTL32_MAJOR >= 6) bits1 |= OS.LVS_EX_DOUBLEBUFFER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1392 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits1, bits1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1393 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1394 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1395 * Feature in Windows. Windows does not explicitly set the orientation of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1396 * the header. Instead, the orientation is inherited when WS_EX_LAYOUTRTL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1397 * is specified for the table. This means that when both WS_EX_LAYOUTRTL |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1398 * and WS_EX_NOINHERITLAYOUT are specified for the table, the header will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1399 * not be oriented correctly. The fix is to explicitly set the orientation |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1400 * for the header. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1401 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1402 * NOTE: WS_EX_LAYOUTRTL is not supported on Windows NT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1403 */ |
213 | 1404 if (OS.WIN32_VERSION >= OS.VERSION (4, 10)) { |
1405 if ((style & DWT.RIGHT_TO_LEFT) !is 0) { | |
1406 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); | |
1407 int bits2 = OS.GetWindowLong (hwndHeader, OS.GWL_EXSTYLE); | |
1408 OS.SetWindowLong (hwndHeader, OS.GWL_EXSTYLE, bits2 | OS.WS_EX_LAYOUTRTL); | |
1409 auto hwndTooltop = cast(HWND)OS.SendMessage (handle, OS.LVM_GETTOOLTIPS, 0, 0); | |
1410 int bits3 = OS.GetWindowLong (hwndTooltop, OS.GWL_EXSTYLE); | |
1411 OS.SetWindowLong (hwndTooltop, OS.GWL_EXSTYLE, bits3 | OS.WS_EX_LAYOUTRTL); | |
1412 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1413 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1414 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1415 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1416 void createHeaderToolTips () { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1417 static if (OS.IsWinCE) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1418 if (headerToolTipHandle !is null) return; |
213 | 1419 int bits = 0; |
1420 if (OS.WIN32_VERSION >= OS.VERSION (4, 10)) { | |
1421 if ((style & DWT.RIGHT_TO_LEFT) !is 0) bits |= OS.WS_EX_LAYOUTRTL; | |
1422 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1423 headerToolTipHandle = OS.CreateWindowEx ( |
213 | 1424 bits, |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1425 OS.TOOLTIPS_CLASS.ptr, |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1426 null, |
213 | 1427 OS.TTS_NOPREFIX, |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1428 OS.CW_USEDEFAULT, 0, OS.CW_USEDEFAULT, 0, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1429 handle, |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1430 null, |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1431 OS.GetModuleHandle (null), |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1432 null); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1433 if (headerToolTipHandle is null) error (DWT.ERROR_NO_HANDLES); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1434 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1435 * Feature in Windows. Despite the fact that the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1436 * tool tip text contains \r\n, the tooltip will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1437 * not honour the new line unless TTM_SETMAXTIPWIDTH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1438 * is set. The fix is to set TTM_SETMAXTIPWIDTH to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1439 * a large value. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1440 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1441 OS.SendMessage (headerToolTipHandle, OS.TTM_SETMAXTIPWIDTH, 0, 0x7FFF); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1442 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1443 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1444 void createItem (TableColumn column, int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1445 if (!(0 <= index && index <= columnCount)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1446 int oldColumn = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOLUMN, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1447 if (oldColumn >= index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1448 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, oldColumn + 1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1449 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1450 if (columnCount is columns.length) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1451 TableColumn [] newColumns = new TableColumn [columns.length + 4]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1452 System.arraycopy (columns, 0, newColumns, 0, columns.length); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1453 columns = newColumns; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1454 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1455 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1456 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1457 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1458 if (item !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
1459 String [] strings = item.strings; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1460 if (strings !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
1461 String [] temp = new String [columnCount + 1]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1462 System.arraycopy (strings, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1463 System.arraycopy (strings, index, temp, index + 1, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1464 item.strings = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1465 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1466 Image [] images = item.images; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1467 if (images !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1468 Image [] temp = new Image [columnCount + 1]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1469 System.arraycopy (images, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1470 System.arraycopy (images, index, temp, index + 1, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1471 item.images = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1472 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1473 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1474 if (columnCount !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1475 if (strings is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
1476 item.strings = new String [columnCount + 1]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1477 item.strings [1] = item.text; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1478 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1479 item.text = ""; //$NON-NLS-1$ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1480 if (images is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1481 item.images = new Image [columnCount + 1]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1482 item.images [1] = item.image; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1483 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1484 item.image = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1485 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1486 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1487 if (item.cellBackground !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1488 int [] cellBackground = item.cellBackground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1489 int [] temp = new int [columnCount + 1]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1490 System.arraycopy (cellBackground, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1491 System.arraycopy (cellBackground, index, temp, index + 1, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1492 temp [index] = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1493 item.cellBackground = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1494 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1495 if (item.cellForeground !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1496 int [] cellForeground = item.cellForeground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1497 int [] temp = new int [columnCount + 1]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1498 System.arraycopy (cellForeground, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1499 System.arraycopy (cellForeground, index, temp, index + 1, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1500 temp [index] = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1501 item.cellForeground = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1502 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1503 if (item.cellFont !is null) { |
213 | 1504 Font [] cellFont = item.cellFont; |
1505 Font [] temp = new Font [columnCount + 1]; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1506 System.arraycopy (cellFont, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1507 System.arraycopy (cellFont, index, temp, index + 1, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1508 item.cellFont = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1509 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1510 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1511 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1512 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1513 * Insert the column into the columns array before inserting |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1514 * it into the widget so that the column will be present when |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1515 * any callbacks are issued as a result of LVM_INSERTCOLUMN |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1516 * or LVM_SETCOLUMN. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1517 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1518 System.arraycopy (columns, index, columns, index + 1, columnCount++ - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1519 columns [index] = column; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1520 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1521 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1522 * Ensure that resize listeners for the table and for columns |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1523 * within the table are not called. This can happen when the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1524 * first column is inserted into a table or when a new column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1525 * is inserted in the first position. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1526 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1527 ignoreColumnResize = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1528 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1529 if (columnCount > 1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1530 LVCOLUMN lvColumn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1531 lvColumn.mask = OS.LVCF_WIDTH; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1532 OS.SendMessage (handle, OS.LVM_INSERTCOLUMN, 1, &lvColumn); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1533 OS.SendMessage (handle, OS.LVM_GETCOLUMN, 1, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1534 int width = lvColumn.cx; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1535 int cchTextMax = 1024; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1536 auto hHeap = OS.GetProcessHeap (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1537 int byteCount = cchTextMax * TCHAR.sizeof; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1538 auto pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1539 lvColumn.mask = OS.LVCF_TEXT | OS.LVCF_IMAGE | OS.LVCF_WIDTH | OS.LVCF_FMT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1540 lvColumn.pszText = pszText; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1541 lvColumn.cchTextMax = cchTextMax; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1542 OS.SendMessage (handle, OS.LVM_GETCOLUMN, 0, &lvColumn); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1543 OS.SendMessage (handle, OS.LVM_SETCOLUMN, 1, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1544 lvColumn.fmt = OS.LVCFMT_IMAGE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1545 lvColumn.cx = width; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1546 lvColumn.iImage = OS.I_IMAGENONE; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1547 lvColumn.pszText = null, lvColumn.cchTextMax = 0; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1548 OS.SendMessage (handle, OS.LVM_SETCOLUMN, 0, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1549 lvColumn.mask = OS.LVCF_FMT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1550 lvColumn.fmt = OS.LVCFMT_LEFT; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1551 OS.SendMessage (handle, OS.LVM_SETCOLUMN, 0, &lvColumn); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1552 if (pszText !is null) OS.HeapFree (hHeap, 0, pszText); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1553 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1554 OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1555 } |
213 | 1556 /* |
1557 * Bug in Windows. Despite the fact that every item in the | |
1558 * table always has LPSTR_TEXTCALLBACK, Windows caches the | |
1559 * bounds for the selected items. This means that | |
1560 * when you change the string to be something else, Windows | |
1561 * correctly asks you for the new string but when the item | |
1562 * is selected, the selection draws using the bounds of the | |
1563 * previous item. The fix is to reset LPSTR_TEXTCALLBACK | |
1564 * even though it has not changed, causing Windows to flush | |
1565 * cached bounds. | |
1566 */ | |
1567 if ((style & DWT.VIRTUAL) is 0) { | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1568 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1569 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_IMAGE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1570 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1571 lvItem.iImage = OS.I_IMAGECALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1572 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1573 lvItem.iItem = i; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1574 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1575 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1576 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1577 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1578 int fmt = OS.LVCFMT_LEFT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1579 if ((column.style & DWT.CENTER) is DWT.CENTER) fmt = OS.LVCFMT_CENTER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1580 if ((column.style & DWT.RIGHT) is DWT.RIGHT) fmt = OS.LVCFMT_RIGHT; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1581 LVCOLUMN lvColumn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1582 lvColumn.mask = OS.LVCF_WIDTH | OS.LVCF_FMT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1583 lvColumn.fmt = fmt; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1584 OS.SendMessage (handle, OS.LVM_INSERTCOLUMN, index, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1585 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1586 ignoreColumnResize = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1587 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1588 /* Add the tool tip item for the header */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1589 if (headerToolTipHandle !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1590 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1591 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1592 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &rect) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1593 TOOLINFO lpti; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1594 lpti.cbSize = TOOLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1595 lpti.uFlags = OS.TTF_SUBCLASS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1596 lpti.hwnd = hwndHeader; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1597 lpti.uId = column.id = display.nextToolTipId++; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1598 lpti.rect.left = rect.left; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1599 lpti.rect.top = rect.top; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1600 lpti.rect.right = rect.right; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1601 lpti.rect.bottom = rect.bottom; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1602 lpti.lpszText = OS.LPSTR_TEXTCALLBACK; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1603 OS.SendMessage (headerToolTipHandle, OS.TTM_ADDTOOL, 0, &lpti); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1604 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1605 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1606 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1607 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1608 void createItem (TableItem item, int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1609 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1610 if (!(0 <= index && index <= count)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1611 if (count is items.length) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1612 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1613 * Grow the array faster when redraw is off or the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1614 * table is not visible. When the table is painted, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1615 * the items array is resized to be smaller to reduce |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1616 * memory usage. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1617 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1618 bool small = drawCount is 0 && OS.IsWindowVisible (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1619 int length = small ? items.length + 4 : Math.max (4, items.length * 3 / 2); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1620 TableItem [] newItems = new TableItem [length]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1621 System.arraycopy (items, 0, newItems, 0, items.length); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1622 items = newItems; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1623 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1624 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1625 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_IMAGE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1626 lvItem.iItem = index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1627 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1628 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1629 * Bug in Windows. Despite the fact that the image list |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1630 * index has never been set for the item, Windows always |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1631 * assumes that the image index for the item is valid. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1632 * When an item is inserted, the image index is zero. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1633 * Therefore, when the first image is inserted and is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1634 * assigned image index zero, every item draws with this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1635 * image. The fix is to set the image index when the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1636 * the item is created. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1637 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1638 lvItem.iImage = OS.I_IMAGECALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1639 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1640 /* Insert the item */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1641 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1642 ignoreSelect = ignoreShrink = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1643 int result = OS.SendMessage (handle, OS.LVM_INSERTITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1644 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1645 if (result is -1) error (DWT.ERROR_ITEM_NOT_ADDED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1646 System.arraycopy (items, index, items, index + 1, count - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1647 items [index] = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1648 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1649 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1650 /* Resize to show the first item */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1651 if (count is 0) setScrollWidth (item, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1652 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1653 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
1654 override void createWidget () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1655 super.createWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1656 itemHeight = hotIndex = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1657 items = new TableItem [4]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1658 columns = new TableColumn [4]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1659 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1660 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
1661 override int defaultBackground () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1662 return OS.GetSysColor (OS.COLOR_WINDOW); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1663 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1664 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
1665 override void deregister () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1666 super.deregister (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1667 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1668 if (hwndHeader !is null) display.removeControl (hwndHeader); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1669 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1670 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1671 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1672 * Deselects the items at the given zero-relative indices in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1673 * If the item at the given zero-relative index in the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1674 * is selected, it is deselected. If the item at the index |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1675 * was not selected, it remains deselected. Indices that are out |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1676 * of range and duplicate indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1677 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1678 * @param indices the array of indices for the items to deselect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1679 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1680 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1681 * <li>ERROR_NULL_ARGUMENT - if the set of indices is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1682 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1683 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1684 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1685 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1686 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1687 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1688 public void deselect (int [] indices) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1689 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1690 if (indices is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1691 if (indices.length is 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1692 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1693 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1694 for (int i=0; i<indices.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1695 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1696 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1697 * items. Ensure that indices are greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1698 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1699 if (indices [i] >= 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1700 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1701 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, indices [i], &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1702 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1703 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1704 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1705 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1706 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1707 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1708 * Deselects the item at the given zero-relative index in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1709 * If the item at the index was already deselected, it remains |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1710 * deselected. Indices that are out of range are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1711 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1712 * @param index the index of the item to deselect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1713 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1714 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1715 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1716 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1717 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1718 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1719 public void deselect (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1720 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1721 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1722 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1723 * items. Ensure that index is greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1724 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1725 if (index < 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1726 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1727 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1728 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1729 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, index, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1730 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1731 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1732 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1733 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1734 * Deselects the items at the given zero-relative indices in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1735 * If the item at the given zero-relative index in the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1736 * is selected, it is deselected. If the item at the index |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1737 * was not selected, it remains deselected. The range of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1738 * indices is inclusive. Indices that are out of range are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1739 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1740 * @param start the start index of the items to deselect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1741 * @param end the end index of the items to deselect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1742 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1743 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1744 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1745 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1746 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1747 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1748 public void deselect (int start, int end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1749 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1750 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1751 if (start is 0 && end is count - 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1752 deselectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1753 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1754 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1755 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1756 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1757 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1758 * items. Ensure that indices are greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1759 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1760 start = Math.max (0, start); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1761 for (int i=start; i<=end; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1762 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1763 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, i, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1764 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1765 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1766 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1767 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1768 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1769 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1770 * Deselects all selected items in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1771 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1772 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1773 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1774 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1775 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1776 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1777 public void deselectAll () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1778 checkWidget (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1779 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1780 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1781 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1782 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1783 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, -1, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1784 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1785 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1786 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1787 void destroyItem (TableColumn column) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1788 int index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1789 while (index < columnCount) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1790 if (columns [index] is column) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1791 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1792 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1793 int oldColumn = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOLUMN, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1794 if (oldColumn is index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1795 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, -1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1796 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1797 if (oldColumn > index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1798 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, oldColumn - 1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1799 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1800 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1801 int orderIndex = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1802 int [] oldOrder = new int [columnCount]; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1803 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, oldOrder.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1804 while (orderIndex < columnCount) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1805 if (oldOrder [orderIndex] is index) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1806 orderIndex++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1807 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1808 ignoreColumnResize = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1809 bool first = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1810 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1811 first = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1812 if (columnCount > 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1813 index = 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1814 int cchTextMax = 1024; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1815 auto hHeap = OS.GetProcessHeap (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1816 int byteCount = cchTextMax * TCHAR.sizeof; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1817 auto pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1818 LVCOLUMN lvColumn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1819 lvColumn.mask = OS.LVCF_TEXT | OS.LVCF_IMAGE | OS.LVCF_WIDTH | OS.LVCF_FMT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1820 lvColumn.pszText = pszText; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1821 lvColumn.cchTextMax = cchTextMax; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1822 OS.SendMessage (handle, OS.LVM_GETCOLUMN, 1, &lvColumn); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1823 lvColumn.fmt &= ~(OS.LVCFMT_CENTER | OS.LVCFMT_RIGHT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1824 lvColumn.fmt |= OS.LVCFMT_LEFT; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1825 OS.SendMessage (handle, OS.LVM_SETCOLUMN, 0, &lvColumn); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1826 if (pszText !is null) OS.HeapFree (hHeap, 0, pszText); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1827 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1828 auto hHeap = OS.GetProcessHeap (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1829 auto pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, TCHAR.sizeof); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1830 LVCOLUMN lvColumn; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1831 lvColumn.mask = OS.LVCF_TEXT | OS.LVCF_IMAGE | OS.LVCF_WIDTH | OS.LVCF_FMT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1832 lvColumn.pszText = pszText; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1833 lvColumn.iImage = OS.I_IMAGENONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1834 lvColumn.fmt = OS.LVCFMT_LEFT; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1835 OS.SendMessage (handle, OS.LVM_SETCOLUMN, 0, &lvColumn); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1836 if (pszText !is null) OS.HeapFree (hHeap, 0, pszText); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1837 if (OS.COMCTL32_MAJOR >= 6) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1838 HDITEM hdItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1839 hdItem.mask = OS.HDI_FORMAT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1840 hdItem.fmt = OS.HDF_LEFT; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1841 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1842 OS.SendMessage (hwndHeader, OS.HDM_SETITEM, index, &hdItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1843 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1844 } |
213 | 1845 /* |
1846 * Bug in Windows. Despite the fact that every item in the | |
1847 * table always has LPSTR_TEXTCALLBACK, Windows caches the | |
1848 * bounds for the selected items. This means that | |
1849 * when you change the string to be something else, Windows | |
1850 * correctly asks you for the new string but when the item | |
1851 * is selected, the selection draws using the bounds of the | |
1852 * previous item. The fix is to reset LPSTR_TEXTCALLBACK | |
1853 * even though it has not changed, causing Windows to flush | |
1854 * cached bounds. | |
1855 */ | |
1856 if ((style & DWT.VIRTUAL) is 0) { | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1857 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1858 lvItem.mask = OS.LVIF_TEXT | OS.LVIF_IMAGE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1859 lvItem.pszText = OS.LPSTR_TEXTCALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1860 lvItem.iImage = OS.I_IMAGECALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1861 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1862 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1863 lvItem.iItem = i; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1864 OS.SendMessage (handle, OS.LVM_SETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1865 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1866 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1867 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1868 if (columnCount > 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1869 if (OS.SendMessage (handle, OS.LVM_DELETECOLUMN, index, 0) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1870 error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1871 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1872 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1873 if (first) index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1874 System.arraycopy (columns, index + 1, columns, index, --columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1875 columns [columnCount] = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1876 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1877 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1878 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1879 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1880 if (columnCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1881 item.strings = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1882 item.images = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1883 item.cellBackground = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1884 item.cellForeground = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1885 item.cellFont = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1886 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1887 if (item.strings !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
1888 String [] strings = item.strings; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1889 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1890 item.text = strings [1] !is null ? strings [1] : ""; //$NON-NLS-1$ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1891 } |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
1892 String [] temp = new String [columnCount]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1893 System.arraycopy (strings, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1894 System.arraycopy (strings, index + 1, temp, index, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1895 item.strings = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1896 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1897 if (index is 0) item.text = ""; //$NON-NLS-1$ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1898 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1899 if (item.images !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1900 Image [] images = item.images; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1901 if (index is 0) item.image = images [1]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1902 Image [] temp = new Image [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1903 System.arraycopy (images, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1904 System.arraycopy (images, index + 1, temp, index, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1905 item.images = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1906 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1907 if (index is 0) item.image = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1908 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1909 if (item.cellBackground !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1910 int [] cellBackground = item.cellBackground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1911 int [] temp = new int [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1912 System.arraycopy (cellBackground, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1913 System.arraycopy (cellBackground, index + 1, temp, index, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1914 item.cellBackground = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1915 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1916 if (item.cellForeground !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1917 int [] cellForeground = item.cellForeground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1918 int [] temp = new int [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1919 System.arraycopy (cellForeground, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1920 System.arraycopy (cellForeground, index + 1, temp, index, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1921 item.cellForeground = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1922 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1923 if (item.cellFont !is null) { |
213 | 1924 Font [] cellFont = item.cellFont; |
1925 Font [] temp = new Font [columnCount]; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1926 System.arraycopy (cellFont, 0, temp, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1927 System.arraycopy (cellFont, index + 1, temp, index, columnCount - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1928 item.cellFont = temp; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1929 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1930 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1931 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1932 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1933 if (columnCount is 0) setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1934 updateMoveable (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1935 ignoreColumnResize = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1936 if (columnCount !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1937 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1938 * Bug in Windows. When LVM_DELETECOLUMN is used to delete a |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1939 * column zero when that column is both the first column in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1940 * table and the first column in the column order array, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1941 * incorrectly computes the new column order. For example, both |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1942 * the orders {0, 3, 1, 2} and {0, 3, 2, 1} give a new column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1943 * order of {0, 2, 1}, while {0, 2, 1, 3} gives {0, 1, 2, 3}. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1944 * The fix is to compute the new order and compare it with the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1945 * order that Windows is using. If the two differ, the new order |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1946 * is used. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1947 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1948 int count = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1949 int oldIndex = oldOrder [orderIndex]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1950 int [] newOrder = new int [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1951 for (int i=0; i<oldOrder.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1952 if (oldOrder [i] !is oldIndex) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1953 int newIndex = oldOrder [i] <= oldIndex ? oldOrder [i] : oldOrder [i] - 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1954 newOrder [count++] = newIndex; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1955 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1956 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1957 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, oldOrder.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1958 int j = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1959 while (j < newOrder.length) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1960 if (oldOrder [j] !is newOrder [j]) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1961 j++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1962 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1963 if (j !is newOrder.length) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1964 OS.SendMessage (handle, OS.LVM_SETCOLUMNORDERARRAY, newOrder.length, newOrder.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1965 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1966 * Bug in Windows. When LVM_SETCOLUMNORDERARRAY is used to change |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1967 * the column order, the header redraws correctly but the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1968 * not. The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1969 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1970 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1971 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1972 TableColumn [] newColumns = new TableColumn [columnCount - orderIndex]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1973 for (int i=orderIndex; i<newOrder.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1974 newColumns [i - orderIndex] = columns [newOrder [i]]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1975 newColumns [i - orderIndex].updateToolTip (newOrder [i]); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1976 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1977 for (int i=0; i<newColumns.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1978 if (!newColumns [i].isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1979 newColumns [i].sendEvent (DWT.Move); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1980 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1981 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1982 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1983 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1984 /* Remove the tool tip item for the header */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1985 if (headerToolTipHandle !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1986 TOOLINFO lpti; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1987 lpti.cbSize = TOOLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1988 lpti.uId = column.id; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1989 lpti.hwnd = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1990 OS.SendMessage (headerToolTipHandle, OS.TTM_DELTOOL, 0, &lpti); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1991 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1992 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1993 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1994 void destroyItem (TableItem item) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1995 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1996 int index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1997 while (index < count) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1998 if (items [index] is item) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1999 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2000 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2001 if (index is count) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2002 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2003 ignoreSelect = ignoreShrink = true; |
213 | 2004 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, index, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2005 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2006 if (code is 0) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2007 System.arraycopy (items, index + 1, items, index, --count - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2008 items [count] = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2009 if (count is 0) setTableEmpty (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2010 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2011 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2012 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2013 void fixCheckboxImageList (bool fixScroll) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2014 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2015 * Bug in Windows. When the state image list is larger than the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2016 * image list, Windows incorrectly positions the state images. When |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2017 * the table is scrolled, Windows draws garbage. The fix is to force |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2018 * the state image list to be the same size as the image list. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2019 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2020 if ((style & DWT.CHECK) is 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2021 HANDLE hImageList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_SMALL, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2022 if (hImageList is null) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2023 int cx, cy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2024 OS.ImageList_GetIconSize (hImageList, &cx, &cy); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2025 HANDLE hStateList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_STATE, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2026 if (hStateList is null) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2027 int stateCx, stateCy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2028 OS.ImageList_GetIconSize (hStateList, &stateCx, &stateCy); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2029 if (cx is stateCx && cy is stateCy ) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2030 setCheckboxImageList (cx, cy, fixScroll); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2031 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2032 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2033 void fixCheckboxImageListColor (bool fixScroll) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2034 if ((style & DWT.CHECK) is 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2035 auto hStateList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_STATE, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2036 if (hStateList is null) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2037 int cx, cy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2038 OS.ImageList_GetIconSize (hStateList, &cx, &cy); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2039 setCheckboxImageList (cx, cy, fixScroll); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2040 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2041 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2042 void fixItemHeight (bool fixScroll) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2043 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2044 * Bug in Windows. When both a header and grid lines are |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2045 * displayed, the grid lines do not take into account the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2046 * height of the header and draw in the wrong place. The |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2047 * fix is to set the height of the table items to be the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2048 * height of the header so that the lines draw in the right |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2049 * place. The height of a table item is the maximum of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2050 * height of the font or the height of image list. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2051 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2052 * NOTE: In version 5.80 of COMCTL32.DLL, the bug is fixed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2053 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2054 if (itemHeight !is -1) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2055 if (OS.COMCTL32_VERSION >= OS.VERSION (5, 80)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2056 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2057 if ((bits & OS.LVS_EX_GRIDLINES) is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2058 bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2059 if ((bits & OS.LVS_NOCOLUMNHEADER) !is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2060 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2061 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2062 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2063 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2064 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2065 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2066 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2067 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2068 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2069 int topIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2070 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2071 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2072 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2073 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2074 auto hOldList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_SMALL, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2075 if (hOldList !is null) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2076 auto hwndHeader = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2077 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2078 OS.GetWindowRect (hwndHeader, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2079 int height = rect.bottom - rect.top - 1; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2080 auto hImageList = OS.ImageList_Create (1, height, 0, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2081 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2082 fixCheckboxImageList (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2083 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2084 if (headerImageList !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2085 auto hHeaderImageList = headerImageList.getHandle (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2086 OS.SendMessage (hwndHeader, OS.HDM_SETIMAGELIST, 0, hHeaderImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2087 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2088 OS.ImageList_Destroy (hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2089 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2090 setTopIndex (topIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2091 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2092 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2093 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2094 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2095 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2096 * Returns the column at the given, zero-relative index in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2097 * receiver. Throws an exception if the index is out of range. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2098 * Columns are returned in the order that they were created. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2099 * If no <code>TableColumn</code>s were created by the programmer, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2100 * this method will throw <code>ERROR_INVALID_RANGE</code> despite |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2101 * the fact that a single column of data may be visible in the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2102 * This occurs when the programmer uses the table like a list, adding |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2103 * items but never creating a column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2104 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2105 * @param index the index of the column to return |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2106 * @return the column at the given index |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2107 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2108 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2109 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2110 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2111 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2112 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2113 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2114 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2115 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2116 * @see Table#getColumnOrder() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2117 * @see Table#setColumnOrder(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2118 * @see TableColumn#getMoveable() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2119 * @see TableColumn#setMoveable(bool) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2120 * @see DWT#Move |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2121 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2122 public TableColumn getColumn (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2123 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2124 if (!(0 <= index && index < columnCount)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2125 return columns [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2126 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2127 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2128 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2129 * Returns the number of columns contained in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2130 * If no <code>TableColumn</code>s were created by the programmer, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2131 * this value is zero, despite the fact that visually, one column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2132 * of items may be visible. This occurs when the programmer uses |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2133 * the table like a list, adding items but never creating a column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2134 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2135 * @return the number of columns |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2136 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2137 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2138 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2139 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2140 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2141 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2142 public int getColumnCount () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2143 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2144 return columnCount; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2145 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2146 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2147 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2148 * Returns an array of zero-relative integers that map |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2149 * the creation order of the receiver's items to the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2150 * order in which they are currently being displayed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2151 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2152 * Specifically, the indices of the returned array represent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2153 * the current visual order of the items, and the contents |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2154 * of the array represent the creation order of the items. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2155 * </p><p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2156 * Note: This is not the actual structure used by the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2157 * to maintain its list of items, so modifying the array will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2158 * not affect the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2159 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2160 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2161 * @return the current visual order of the receiver's items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2162 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2163 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2164 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2165 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2166 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2167 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2168 * @see Table#setColumnOrder(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2169 * @see TableColumn#getMoveable() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2170 * @see TableColumn#setMoveable(bool) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2171 * @see DWT#Move |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2172 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2173 * @since 3.1 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2174 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2175 public int[] getColumnOrder () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2176 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2177 if (columnCount is 0) return new int [0]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2178 int [] order = new int [columnCount]; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2179 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, order.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2180 return order; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2181 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2182 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2183 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2184 * Returns an array of <code>TableColumn</code>s which are the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2185 * columns in the receiver. Columns are returned in the order |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2186 * that they were created. If no <code>TableColumn</code>s were |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2187 * created by the programmer, the array is empty, despite the fact |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2188 * that visually, one column of items may be visible. This occurs |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2189 * when the programmer uses the table like a list, adding items but |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2190 * never creating a column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2191 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2192 * Note: This is not the actual structure used by the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2193 * to maintain its list of items, so modifying the array will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2194 * not affect the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2195 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2196 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2197 * @return the items in the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2198 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2199 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2200 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2201 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2202 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2203 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2204 * @see Table#getColumnOrder() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2205 * @see Table#setColumnOrder(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2206 * @see TableColumn#getMoveable() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2207 * @see TableColumn#setMoveable(bool) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2208 * @see DWT#Move |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2209 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2210 public TableColumn [] getColumns () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2211 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2212 TableColumn [] result = new TableColumn [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2213 System.arraycopy (columns, 0, result, 0, columnCount); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2214 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2215 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2216 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2217 int getFocusIndex () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2218 // checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2219 return OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2220 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2221 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2222 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2223 * Returns the width in pixels of a grid line. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2224 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2225 * @return the width of a grid line in pixels |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2226 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2227 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2228 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2229 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2230 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2231 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2232 public int getGridLineWidth () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2233 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2234 return GRID_WIDTH; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2235 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2236 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2237 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2238 * Returns the height of the receiver's header |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2239 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2240 * @return the height of the header or zero if the header is not visible |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2241 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2242 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2243 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2244 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2245 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2246 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2247 * @since 2.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2248 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2249 public int getHeaderHeight () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2250 checkWidget (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2251 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2252 if (hwndHeader is null) return 0; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2253 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2254 OS.GetWindowRect (hwndHeader, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2255 return rect.bottom - rect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2256 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2257 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2258 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2259 * Returns <code>true</code> if the receiver's header is visible, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2260 * and <code>false</code> otherwise. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2261 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2262 * If one of the receiver's ancestors is not visible or some |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2263 * other condition makes the receiver not visible, this method |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2264 * may still indicate that it is considered visible even though |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2265 * it may not actually be showing. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2266 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2267 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2268 * @return the receiver's header's visibility state |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2269 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2270 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2271 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2272 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2273 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2274 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2275 public bool getHeaderVisible () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2276 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2277 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2278 return (bits & OS.LVS_NOCOLUMNHEADER) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2279 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2280 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2281 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2282 * Returns the item at the given, zero-relative index in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2283 * receiver. Throws an exception if the index is out of range. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2284 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2285 * @param index the index of the item to return |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2286 * @return the item at the given index |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2287 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2288 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2289 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2290 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2291 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2292 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2293 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2294 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2295 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2296 public TableItem getItem (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2297 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2298 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2299 if (!(0 <= index && index < count)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2300 return _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2301 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2302 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2303 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2304 * Returns the item at the given point in the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2305 * or null if no such item exists. The point is in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2306 * coordinate system of the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2307 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2308 * The item that is returned represents an item that could be selected by the user. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2309 * For example, if selection only occurs in items in the first column, then null is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2310 * returned if the point is outside of the item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2311 * Note that the DWT.FULL_SELECTION style hint, which specifies the selection policy, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2312 * determines the extent of the selection. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2313 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2314 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2315 * @param point the point used to locate the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2316 * @return the item at the given point, or null if the point is not in a selectable item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2317 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2318 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2319 * <li>ERROR_NULL_ARGUMENT - if the point is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2320 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2321 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2322 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2323 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2324 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2325 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2326 public TableItem getItem (Point point) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2327 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2328 if (point is null) error (DWT.ERROR_NULL_ARGUMENT); |
213 | 2329 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
2330 if (count is 0) return null; | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2331 LVHITTESTINFO pinfo; |
213 | 2332 pinfo.pt.x = point.x; |
2333 pinfo.pt.y = point.y; | |
2334 if ((style & DWT.FULL_SELECTION) is 0) { | |
2335 if (hooks (DWT.MeasureItem)) { | |
2336 OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo); | |
2337 if (pinfo.iItem is -1) { | |
2338 RECT rect; | |
2339 rect.left = OS.LVIR_ICON; | |
2340 ignoreCustomDraw = true; | |
2341 int /*long*/ code = OS.SendMessage (handle, OS.LVM_GETITEMRECT, 0, &rect); | |
2342 ignoreCustomDraw = false; | |
2343 if (code !is 0) { | |
2344 pinfo.pt.x = rect.left; | |
2345 OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo); | |
2346 } | |
2347 } | |
2348 if (pinfo.iItem !is -1 && pinfo.iSubItem is 0) { | |
2349 if (hitTestSelection (pinfo.iItem, pinfo.pt.x, pinfo.pt.y)) { | |
2350 return _getItem (pinfo.iItem); | |
2351 } | |
2352 } | |
2353 return null; | |
2354 } | |
2355 } | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2356 OS.SendMessage (handle, OS.LVM_HITTEST, 0, &pinfo); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2357 if (pinfo.iItem !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2358 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2359 * Bug in Windows. When the point that is used by |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2360 * LVM_HITTEST is inside the header, Windows returns |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2361 * the first item in the table. The fix is to check |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2362 * when LVM_HITTEST returns the first item and make |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2363 * sure that when the point is within the header, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2364 * the first item is not returned. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2365 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2366 if (pinfo.iItem is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2367 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2368 if ((bits & OS.LVS_NOCOLUMNHEADER) is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2369 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2370 if (hwndHeader !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2371 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2372 OS.GetWindowRect (hwndHeader, &rect); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2373 POINT pt; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2374 pt.x = pinfo.pt.x; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2375 pt.y = pinfo.pt.y; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2376 OS.MapWindowPoints (handle, null, &pt, 1); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2377 if (OS.PtInRect (&rect, pt)) return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2378 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2379 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2380 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2381 return _getItem (pinfo.iItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2382 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2383 return null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2384 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2385 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2386 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2387 * Returns the number of items contained in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2388 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2389 * @return the number of items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2390 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2391 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2392 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2393 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2394 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2395 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2396 public int getItemCount () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2397 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2398 return OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2399 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2400 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2401 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2402 * Returns the height of the area which would be used to |
213 | 2403 * display <em>one</em> of the items in the receiver. |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2404 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2405 * @return the height of one item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2406 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2407 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2408 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2409 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2410 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2411 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2412 public int getItemHeight () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2413 checkWidget (); |
213 | 2414 int /*long*/ empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0); |
2415 int /*long*/ oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0); | |
2416 return OS.HIWORD (oneItem) - OS.HIWORD (empty); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2417 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2418 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2419 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2420 * Returns a (possibly empty) array of <code>TableItem</code>s which |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2421 * are the items in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2422 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2423 * Note: This is not the actual structure used by the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2424 * to maintain its list of items, so modifying the array will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2425 * not affect the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2426 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2427 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2428 * @return the items in the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2429 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2430 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2431 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2432 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2433 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2434 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2435 public TableItem [] getItems () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2436 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2437 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2438 TableItem [] result = new TableItem [count]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2439 if ((style & DWT.VIRTUAL) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2440 for (int i=0; i<count; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2441 result [i] = _getItem (i); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2442 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2443 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2444 System.arraycopy (items, 0, result, 0, count); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2445 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2446 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2447 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2448 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2449 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2450 * Returns <code>true</code> if the receiver's lines are visible, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2451 * and <code>false</code> otherwise. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2452 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2453 * If one of the receiver's ancestors is not visible or some |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2454 * other condition makes the receiver not visible, this method |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2455 * may still indicate that it is considered visible even though |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2456 * it may not actually be showing. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2457 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2458 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2459 * @return the visibility state of the lines |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2460 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2461 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2462 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2463 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2464 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2465 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2466 public bool getLinesVisible () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2467 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2468 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2469 return (bits & OS.LVS_EX_GRIDLINES) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2470 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2471 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2472 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2473 * Returns an array of <code>TableItem</code>s that are currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2474 * selected in the receiver. The order of the items is unspecified. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2475 * An empty array indicates that no items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2476 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2477 * Note: This is not the actual structure used by the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2478 * to maintain its selection, so modifying the array will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2479 * not affect the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2480 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2481 * @return an array representing the selection |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2482 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2483 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2484 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2485 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2486 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2487 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2488 public TableItem [] getSelection () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2489 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2490 int i = -1, j = 0, count = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2491 TableItem [] result = new TableItem [count]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2492 while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2493 result [j++] = _getItem (i); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2494 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2495 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2496 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2497 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2498 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2499 * Returns the number of selected items contained in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2500 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2501 * @return the number of selected items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2502 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2503 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2504 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2505 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2506 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2507 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2508 public int getSelectionCount () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2509 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2510 return OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2511 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2512 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2513 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2514 * Returns the zero-relative index of the item which is currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2515 * selected in the receiver, or -1 if no item is selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2516 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2517 * @return the index of the selected item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2518 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2519 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2520 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2521 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2522 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2523 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2524 public int getSelectionIndex () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2525 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2526 int focusIndex = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2527 int selectedIndex = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_SELECTED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2528 if (focusIndex is selectedIndex) return selectedIndex; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2529 int i = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2530 while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2531 if (i is focusIndex) return i; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2532 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2533 return selectedIndex; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2534 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2535 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2536 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2537 * Returns the zero-relative indices of the items which are currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2538 * selected in the receiver. The order of the indices is unspecified. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2539 * The array is empty if no items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2540 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2541 * Note: This is not the actual structure used by the receiver |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2542 * to maintain its selection, so modifying the array will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2543 * not affect the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2544 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2545 * @return the array of indices of the selected items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2546 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2547 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2548 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2549 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2550 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2551 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2552 public int [] getSelectionIndices () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2553 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2554 int i = -1, j = 0, count = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2555 int [] result = new int [count]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2556 while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2557 result [j++] = i; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2558 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2559 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2560 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2561 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2562 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2563 * Returns the column which shows the sort indicator for |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2564 * the receiver. The value may be null if no column shows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2565 * the sort indicator. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2566 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2567 * @return the sort indicator |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2568 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2569 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2570 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2571 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2572 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2573 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2574 * @see #setSortColumn(TableColumn) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2575 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2576 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2577 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2578 public TableColumn getSortColumn () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2579 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2580 return sortColumn; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2581 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2582 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2583 int getSortColumnPixel () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2584 int pixel = OS.IsWindowEnabled (handle) ? getBackgroundPixel () : OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2585 int red = pixel & 0xFF; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2586 int green = (pixel & 0xFF00) >> 8; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2587 int blue = (pixel & 0xFF0000) >> 16; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2588 if (red > 240 && green > 240 && blue > 240) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2589 red -= 8; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2590 green -= 8; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2591 blue -= 8; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2592 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2593 red = Math.min (0xFF, (red / 10) + red); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2594 green = Math.min (0xFF, (green / 10) + green); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2595 blue = Math.min (0xFF, (blue / 10) + blue); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2596 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2597 return (red & 0xFF) | ((green & 0xFF) << 8) | ((blue & 0xFF) << 16); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2598 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2599 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2600 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2601 * Returns the direction of the sort indicator for the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2602 * The value will be one of <code>UP</code>, <code>DOWN</code> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2603 * or <code>NONE</code>. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2604 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2605 * @return the sort direction |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2606 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2607 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2608 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2609 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2610 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2611 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2612 * @see #setSortDirection(int) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2613 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2614 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2615 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2616 public int getSortDirection () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2617 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2618 return sortDirection; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2619 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2620 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2621 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2622 * Returns the zero-relative index of the item which is currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2623 * at the top of the receiver. This index can change when items are |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2624 * scrolled or new items are added or removed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2625 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2626 * @return the index of the top item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2627 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2628 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2629 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2630 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2631 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2632 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2633 public int getTopIndex () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2634 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2635 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2636 * Bug in Windows. Under rare circumstances, LVM_GETTOPINDEX |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2637 * can return a negative number. When this happens, the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2638 * is displaying blank lines at the top of the controls. The |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2639 * fix is to check for a negative number and return zero instead. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2640 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2641 return Math.max (0, OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2642 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2643 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2644 bool hasChildren () { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2645 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2646 auto hwndChild = OS.GetWindow (handle, OS.GW_CHILD); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2647 while (hwndChild !is null) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2648 if (hwndChild !is hwndHeader) return true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2649 hwndChild = OS.GetWindow (hwndChild, OS.GW_HWNDNEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2650 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2651 return false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2652 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2653 |
213 | 2654 bool hitTestSelection (int index, int x, int y) { |
2655 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); | |
2656 if (count is 0) return false; | |
2657 if (!hooks (DWT.MeasureItem)) return false; | |
2658 bool result = false; | |
2659 if (0 <= index && index < count) { | |
2660 TableItem item = _getItem (index); | |
2661 auto hDC = OS.GetDC (handle); | |
2662 HFONT oldFont, newFont = cast(HFONT)OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
2663 if (newFont !is null) oldFont = OS.SelectObject (hDC, newFont); | |
2664 auto hFont = item.fontHandle (0); | |
2665 if (hFont !is cast(HFONT)-1) hFont = OS.SelectObject (hDC, hFont); | |
2666 Event event = sendMeasureItemEvent (item, index, 0, hDC); | |
2667 if (event.getBounds ().contains (x, y)) result = true; | |
2668 if (hFont !is cast(HFONT)-1) hFont = OS.SelectObject (hDC, hFont); | |
2669 if (newFont !is null) OS.SelectObject (hDC, oldFont); | |
2670 OS.ReleaseDC (handle, hDC); | |
2671 // if (isDisposed () || item.isDisposed ()) return false; | |
2672 } | |
2673 return result; | |
2674 } | |
2675 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2676 int imageIndex (Image image, int column) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2677 if (image is null) return OS.I_IMAGENONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2678 if (column is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2679 firstColumnImage = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2680 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2681 setSubImagesVisible (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2682 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2683 if (imageList is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2684 Rectangle bounds = image.getBounds (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2685 imageList = display.getImageList (style & DWT.RIGHT_TO_LEFT, bounds.width, bounds.height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2686 int index = imageList.indexOf (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2687 if (index is -1) index = imageList.add (image); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2688 auto hImageList = imageList.getHandle (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2689 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2690 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2691 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2692 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2693 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2694 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2695 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2696 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2697 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2698 int topIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2699 if (topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2700 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2701 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2702 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2703 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2704 if (headerImageList !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2705 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2706 auto hHeaderImageList = headerImageList.getHandle (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2707 OS.SendMessage (hwndHeader, OS.HDM_SETIMAGELIST, 0, hHeaderImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2708 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2709 fixCheckboxImageList (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2710 if (itemHeight !is -1) setItemHeight (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2711 if (topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2712 setTopIndex (topIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2713 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2714 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2715 return index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2716 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2717 int index = imageList.indexOf (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2718 if (index !is -1) return index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2719 return imageList.add (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2720 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2721 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2722 int imageIndexHeader (Image image) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2723 if (image is null) return OS.I_IMAGENONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2724 if (headerImageList is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2725 Rectangle bounds = image.getBounds (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2726 headerImageList = display.getImageList (style & DWT.RIGHT_TO_LEFT, bounds.width, bounds.height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2727 int index = headerImageList.indexOf (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2728 if (index is -1) index = headerImageList.add (image); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2729 auto hImageList = headerImageList.getHandle (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2730 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2731 OS.SendMessage (hwndHeader, OS.HDM_SETIMAGELIST, 0, hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2732 return index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2733 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2734 int index = headerImageList.indexOf (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2735 if (index !is -1) return index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2736 return headerImageList.add (image); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2737 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2738 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2739 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2740 * Searches the receiver's list starting at the first column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2741 * (index 0) until a column is found that is equal to the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2742 * argument, and returns the index of that column. If no column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2743 * is found, returns -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2744 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2745 * @param column the search column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2746 * @return the index of the column |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2747 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2748 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2749 * <li>ERROR_NULL_ARGUMENT - if the column is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2750 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2751 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2752 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2753 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2754 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2755 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2756 public int indexOf (TableColumn column) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2757 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2758 if (column is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2759 for (int i=0; i<columnCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2760 if (columns [i] is column) return i; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2761 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2762 return -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2763 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2764 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2765 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2766 * Searches the receiver's list starting at the first item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2767 * (index 0) until an item is found that is equal to the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2768 * argument, and returns the index of that item. If no item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2769 * is found, returns -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2770 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2771 * @param item the search item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2772 * @return the index of the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2773 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2774 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2775 * <li>ERROR_NULL_ARGUMENT - if the item is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2776 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2777 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2778 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2779 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2780 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2781 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2782 public int indexOf (TableItem item) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2783 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2784 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2785 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2786 if (1 <= lastIndexOf && lastIndexOf < count - 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2787 if (items [lastIndexOf] is item) return lastIndexOf; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2788 if (items [lastIndexOf + 1] is item) return ++lastIndexOf; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2789 if (items [lastIndexOf - 1] is item) return --lastIndexOf; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2790 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2791 if (lastIndexOf < count / 2) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2792 for (int i=0; i<count; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2793 if (items [i] is item) return lastIndexOf = i; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2794 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2795 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2796 for (int i=count - 1; i>=0; --i) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2797 if (items [i] is item) return lastIndexOf = i; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2798 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2799 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2800 return -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2801 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2802 |
213 | 2803 bool isCustomToolTip () { |
2804 return hooks (DWT.MeasureItem); | |
2805 } | |
2806 | |
2807 bool isOptimizedRedraw () { | |
2808 if ((style & DWT.H_SCROLL) is 0 || (style & DWT.V_SCROLL) is 0) return false; | |
2809 return !hasChildren () && !hooks (DWT.Paint) && !filters (DWT.Paint); | |
2810 } | |
2811 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2812 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2813 * Returns <code>true</code> if the item is selected, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2814 * and <code>false</code> otherwise. Indices out of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2815 * range are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2816 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2817 * @param index the index of the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2818 * @return the selection state of the item at the index |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2819 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2820 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2821 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2822 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2823 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2824 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2825 public bool isSelected (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2826 checkWidget (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2827 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2828 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2829 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2830 lvItem.iItem = index; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2831 int result = OS.SendMessage (handle, OS.LVM_GETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2832 return (result !is 0) && ((lvItem.state & OS.LVIS_SELECTED) !is 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2833 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2834 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
2835 override void register () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2836 super.register (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2837 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2838 if (hwndHeader !is null) display.addControl (hwndHeader, this); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2839 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2840 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
2841 override void releaseChildren (bool destroy) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2842 if (items !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2843 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2844 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2845 * Feature in Windows 98. When there are a large number |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2846 * of columns and items in a table (>1000) where each |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2847 * of the subitems in the table has a string, it is much |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2848 * faster to delete each item with LVM_DELETEITEM rather |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2849 * than using LVM_DELETEALLITEMS. The fix is to detect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2850 * this case and delete the items, one by one. The fact |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2851 * that the fix is only necessary on Windows 98 was |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2852 * confirmed using version 5.81 of COMCTL32.DLL on both |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2853 * Windows 98 and NT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2854 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2855 * NOTE: LVM_DELETEALLITEMS is also sent by the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2856 * when the table is destroyed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2857 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2858 if (OS.IsWin95 && columnCount > 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2859 /* Turn off redraw and resize events and leave them off */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2860 resizeCount = 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2861 OS.SendMessage (handle, OS.WM_SETREDRAW, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2862 for (int i=itemCount-1; i>=0; --i) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2863 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2864 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2865 ignoreSelect = ignoreShrink = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2866 OS.SendMessage (handle, OS.LVM_DELETEITEM, i, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2867 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2868 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2869 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2870 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2871 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2872 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2873 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2874 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2875 items = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2876 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2877 if (columns !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2878 for (int i=0; i<columnCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2879 TableColumn column = columns [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2880 if (!column.isDisposed ()) column.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2881 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2882 columns = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2883 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2884 super.releaseChildren (destroy); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2885 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2886 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
2887 override void releaseWidget () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2888 super.releaseWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2889 customDraw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2890 currentItem = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2891 if (imageList !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2892 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2893 display.releaseImageList (imageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2894 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2895 if (headerImageList !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2896 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2897 OS.SendMessage (hwndHeader, OS.HDM_SETIMAGELIST, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2898 display.releaseImageList (headerImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2899 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2900 imageList = headerImageList = null; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2901 auto hStateList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_STATE, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2902 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_STATE, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2903 if (hStateList !is null) OS.ImageList_Destroy (hStateList); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2904 if (headerToolTipHandle !is null) OS.DestroyWindow (headerToolTipHandle); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2905 headerToolTipHandle = null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2906 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2907 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2908 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2909 * Removes the items from the receiver's list at the given |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2910 * zero-relative indices. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2911 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2912 * @param indices the array of indices of the items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2913 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2914 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2915 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2916 * <li>ERROR_NULL_ARGUMENT - if the indices array is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2917 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2918 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2919 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2920 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2921 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2922 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2923 public void remove (int [] indices) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2924 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2925 if (indices is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2926 if (indices.length is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2927 int [] newIndices = new int [indices.length]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2928 System.arraycopy (indices, 0, newIndices, 0, indices.length); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2929 sort (newIndices); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2930 int start = newIndices [newIndices.length - 1], end = newIndices [0]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2931 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2932 if (!(0 <= start && start <= end && end < count)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2933 error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2934 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2935 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2936 int last = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2937 for (int i=0; i<newIndices.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2938 int index = newIndices [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2939 if (index !is last) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2940 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2941 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2942 ignoreSelect = ignoreShrink = true; |
213 | 2943 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, index, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2944 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2945 if (code is 0) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2946 System.arraycopy (items, index + 1, items, index, --count - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2947 items [count] = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2948 last = index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2949 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2950 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2951 if (count is 0) setTableEmpty (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2952 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2953 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2954 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2955 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2956 * Removes the item from the receiver at the given |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2957 * zero-relative index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2958 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2959 * @param index the index for the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2960 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2961 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2962 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2963 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2964 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2965 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2966 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2967 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2968 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2969 public void remove (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2970 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2971 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2972 if (!(0 <= index && index < count)) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2973 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2974 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2975 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2976 ignoreSelect = ignoreShrink = true; |
213 | 2977 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, index, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2978 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2979 if (code is 0) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2980 System.arraycopy (items, index + 1, items, index, --count - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2981 items [count] = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2982 if (count is 0) setTableEmpty (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2983 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2984 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2985 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2986 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2987 * Removes the items from the receiver which are |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2988 * between the given zero-relative start and end |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2989 * indices (inclusive). |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2990 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2991 * @param start the start of the range |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2992 * @param end the end of the range |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2993 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2994 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2995 * <li>ERROR_INVALID_RANGE - if either the start or end are not between 0 and the number of elements in the list minus 1 (inclusive)</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2996 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2997 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2998 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2999 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3000 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3001 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3002 public void remove (int start, int end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3003 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3004 if (start > end) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3005 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3006 if (!(0 <= start && start <= end && end < count)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3007 error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3008 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3009 if (start is 0 && end is count - 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3010 removeAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3011 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3012 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3013 int index = start; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3014 while (index <= end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3015 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3016 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3017 ignoreSelect = ignoreShrink = true; |
213 | 3018 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, start, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3019 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3020 if (code is 0) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3021 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3022 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3023 System.arraycopy (items, index, items, start, count - index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3024 for (int i=count-(index-start); i<count; i++) items [i] = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3025 if (index <= end) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3026 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3027 * This code is intentionally commented. It is not necessary |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3028 * to check for an empty table because removeAll() was called |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3029 * when the start is 0 and end is count - 1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3030 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3031 //if (count - index is 0) setTableEmpty (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3032 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3033 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3034 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3035 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3036 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3037 * Removes all of the items from the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3038 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3039 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3040 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3041 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3042 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3043 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3044 public void removeAll () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3045 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3046 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3047 for (int i=0; i<itemCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3048 TableItem item = items [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3049 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3050 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3051 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3052 * Feature in Windows 98. When there are a large number |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3053 * of columns and items in a table (>1000) where each |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3054 * of the subitems in the table has a string, it is much |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3055 * faster to delete each item with LVM_DELETEITEM rather |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3056 * than using LVM_DELETEALLITEMS. The fix is to detect |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3057 * this case and delete the items, one by one. The fact |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3058 * that the fix is only necessary on Windows 98 was |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3059 * confirmed using version 5.81 of COMCTL32.DLL on both |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3060 * Windows 98 and NT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3061 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3062 * NOTE: LVM_DELETEALLITEMS is also sent by the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3063 * when the table is destroyed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3064 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3065 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3066 if (OS.IsWin95 && columnCount > 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3067 bool redraw = drawCount is 0 && OS.IsWindowVisible (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3068 if (redraw) OS.SendMessage (handle, OS.WM_SETREDRAW, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3069 int index = itemCount - 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3070 while (index >= 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3071 ignoreSelect = ignoreShrink = true; |
213 | 3072 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, index, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3073 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3074 if (code is 0) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3075 --index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3076 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3077 if (redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3078 OS.SendMessage (handle, OS.WM_SETREDRAW, 1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3079 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3080 * This code is intentionally commented. The window proc |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3081 * for the table implements WM_SETREDRAW to invalidate |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3082 * and erase the table so it is not necessary to do this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3083 * again. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3084 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3085 // int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3086 // OS.RedrawWindow (handle, null, 0, flags); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3087 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3088 if (index !is -1) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3089 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3090 ignoreSelect = ignoreShrink = true; |
213 | 3091 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEALLITEMS, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3092 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3093 if (code is 0) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3094 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3095 setTableEmpty (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3096 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3097 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3098 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3099 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3100 * Removes the listener from the collection of listeners who will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3101 * be notified when the user changes the receiver's selection. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3102 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3103 * @param listener the listener which should no longer be notified |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3104 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3105 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3106 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3107 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3108 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3109 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3110 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3111 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3112 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3113 * @see SelectionListener |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3114 * @see #addSelectionListener(SelectionListener) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3115 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3116 public void removeSelectionListener(SelectionListener listener) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3117 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3118 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3119 if (eventTable is null) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3120 eventTable.unhook (DWT.Selection, listener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3121 eventTable.unhook (DWT.DefaultSelection,listener); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3122 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3123 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3124 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3125 * Selects the items at the given zero-relative indices in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3126 * The current selection is not cleared before the new items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3127 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3128 * If the item at a given index is not selected, it is selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3129 * If the item at a given index was already selected, it remains selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3130 * Indices that are out of range and duplicate indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3131 * If the receiver is single-select and multiple indices are specified, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3132 * then all indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3133 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3134 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3135 * @param indices the array of indices for the items to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3136 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3137 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3138 * <li>ERROR_NULL_ARGUMENT - if the array of indices is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3139 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3140 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3141 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3142 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3143 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3144 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3145 * @see Table#setSelection(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3146 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3147 public void select (int [] indices) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3148 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3149 if (indices is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3150 int length = indices.length; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3151 if (length is 0 || ((style & DWT.SINGLE) !is 0 && length > 1)) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3152 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3153 lvItem.state = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3154 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3155 for (int i=length-1; i>=0; --i) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3156 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3157 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3158 * items. Ensure that indices are greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3159 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3160 if (indices [i] >= 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3161 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3162 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, indices [i], &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3163 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3164 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3165 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3166 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3167 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3168 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3169 * Selects the item at the given zero-relative index in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3170 * If the item at the index was already selected, it remains |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3171 * selected. Indices that are out of range are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3172 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3173 * @param index the index of the item to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3174 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3175 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3176 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3177 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3178 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3179 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3180 public void select (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3181 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3182 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3183 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3184 * items. Ensure that index is greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3185 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3186 if (index < 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3187 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3188 lvItem.state = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3189 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3190 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3191 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, index, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3192 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3193 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3194 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3195 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3196 * Selects the items in the range specified by the given zero-relative |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3197 * indices in the receiver. The range of indices is inclusive. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3198 * The current selection is not cleared before the new items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3199 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3200 * If an item in the given range is not selected, it is selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3201 * If an item in the given range was already selected, it remains selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3202 * Indices that are out of range are ignored and no items will be selected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3203 * if start is greater than end. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3204 * If the receiver is single-select and there is more than one item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3205 * given range, then all indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3206 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3207 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3208 * @param start the start of the range |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3209 * @param end the end of the range |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3210 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3211 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3212 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3213 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3214 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3215 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3216 * @see Table#setSelection(int,int) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3217 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3218 public void select (int start, int end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3219 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3220 if (end < 0 || start > end || ((style & DWT.SINGLE) !is 0 && start !is end)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3221 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3222 if (count is 0 || start >= count) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3223 start = Math.max (0, start); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3224 end = Math.min (end, count - 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3225 if (start is 0 && end is count - 1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3226 selectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3227 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3228 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3229 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3230 * items. Indices must be greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3231 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3232 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3233 lvItem.state = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3234 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3235 for (int i=start; i<=end; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3236 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3237 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, i, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3238 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3239 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3240 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3241 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3242 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3243 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3244 * Selects all of the items in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3245 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3246 * If the receiver is single-select, do nothing. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3247 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3248 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3249 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3250 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3251 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3252 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3253 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3254 public void selectAll () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3255 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3256 if ((style & DWT.SINGLE) !is 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3257 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3258 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3259 lvItem.state = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3260 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3261 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3262 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, -1, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3263 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3264 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3265 |
213 | 3266 void sendEraseItemEvent (TableItem item, NMLVCUSTOMDRAW* nmcd, int lParam, Event measureEvent) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3267 auto hDC = nmcd.nmcd.hdc; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3268 int clrText = item.cellForeground !is null ? item.cellForeground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3269 if (clrText is -1) clrText = item.foreground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3270 int clrTextBk = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3271 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3272 if (sortColumn !is null && sortDirection !is DWT.NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3273 if (findImageControl () is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3274 if (indexOf (sortColumn) is nmcd.iSubItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3275 clrTextBk = getSortColumnPixel (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3276 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3277 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3278 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3279 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3280 clrTextBk = item.cellBackground !is null ? item.cellBackground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3281 if (clrTextBk is -1) clrTextBk = item.background; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3282 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3283 * Bug in Windows. For some reason, CDIS_SELECTED always set, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3284 * even for items that are not selected. The fix is to get |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3285 * the selection state from the item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3286 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3287 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3288 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3289 lvItem.stateMask = OS.LVIS_SELECTED; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3290 lvItem.iItem = nmcd.nmcd.dwItemSpec; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3291 int result = OS.SendMessage (handle, OS.LVM_GETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3292 bool selected = (result !is 0 && (lvItem.state & OS.LVIS_SELECTED) !is 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3293 GCData data = new GCData (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3294 data.device = display; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3295 int clrSelectionBk = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3296 bool drawSelected = false, drawBackground = false, drawHot = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3297 if (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3298 drawHot = hotIndex is nmcd.nmcd.dwItemSpec; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3299 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3300 if (OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3301 if (selected && (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0)) { |
213 | 3302 if (OS.GetFocus () is handle || display.getHighContrast ()) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3303 drawSelected = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3304 data.foreground = OS.GetSysColor (OS.COLOR_HIGHLIGHTTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3305 data.background = clrSelectionBk = OS.GetSysColor (OS.COLOR_HIGHLIGHT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3306 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3307 drawSelected = (style & DWT.HIDE_SELECTION) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3308 data.foreground = OS.GetTextColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3309 data.background = clrSelectionBk = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3310 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3311 if (explorerTheme) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3312 data.foreground = clrText !is -1 ? clrText : getForegroundPixel (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3313 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3314 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3315 drawBackground = clrTextBk !is -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3316 /* |
213 | 3317 * Bug in Windows. When LVM_SETTEXTBKCOLOR, LVM_SETBKCOLOR |
3318 * or LVM_SETTEXTCOLOR is used to set the background color of | |
3319 * the the text or the control, the color is not set in the HDC | |
3320 * that is provided in Custom Draw. The fix is to explicitly | |
3321 * set the color. | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3322 */ |
213 | 3323 if (clrText is -1 || clrTextBk is -1) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3324 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3325 if (control is null) control = this; |
213 | 3326 if (clrText is -1) clrText = control.getForegroundPixel (); |
3327 if (clrTextBk is -1) clrTextBk = control.getBackgroundPixel (); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3328 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3329 data.foreground = clrText !is -1 ? clrText : OS.GetTextColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3330 data.background = clrTextBk !is -1 ? clrTextBk : OS.GetBkColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3331 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3332 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3333 data.foreground = OS.GetSysColor (OS.COLOR_GRAYTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3334 data.background = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3335 if (selected) clrSelectionBk = data.background; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3336 } |
213 | 3337 data.font = item.getFont (nmcd.iSubItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3338 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3339 auto nSavedDC = OS.SaveDC (hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3340 GC gc = GC.win32_new (hDC, data); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3341 RECT cellRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, true, true, true, hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3342 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3343 event.item = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3344 event.gc = gc; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3345 event.index = nmcd.iSubItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3346 event.detail |= DWT.FOREGROUND; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3347 // if ((nmcd.nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3348 if (OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED) is nmcd.nmcd.dwItemSpec) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3349 if (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3350 if (handle is OS.GetFocus ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3351 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3352 if ((uiState & OS.UISF_HIDEFOCUS) is 0) event.detail |= DWT.FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3353 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3354 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3355 } |
213 | 3356 bool focused = (event.detail & DWT.FOCUSED) !is 0; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3357 if (drawHot) event.detail |= DWT.HOT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3358 if (drawSelected) event.detail |= DWT.SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3359 if (drawBackground) event.detail |= DWT.BACKGROUND; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3360 event.x = cellRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3361 event.y = cellRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3362 event.width = cellRect.right - cellRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3363 event.height = cellRect.bottom - cellRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3364 gc.setClipping (event.x, event.y, event.width, event.height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3365 sendEvent (DWT.EraseItem, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3366 event.gc = null; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3367 auto clrSelectionText = data.foreground; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3368 gc.dispose (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3369 OS.RestoreDC (hDC, nSavedDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3370 if (isDisposed () || item.isDisposed ()) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3371 if (event.doit) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3372 ignoreDrawForeground = (event.detail & DWT.FOREGROUND) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3373 ignoreDrawBackground = (event.detail & DWT.BACKGROUND) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3374 ignoreDrawSelection = (event.detail & DWT.SELECTED) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3375 ignoreDrawFocus = (event.detail & DWT.FOCUSED) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3376 ignoreDrawHot = (event.detail & DWT.HOT) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3377 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3378 ignoreDrawForeground = ignoreDrawBackground = ignoreDrawSelection = ignoreDrawFocus = ignoreDrawHot = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3379 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3380 if (drawSelected) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3381 if (ignoreDrawSelection) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3382 ignoreDrawHot = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3383 if (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3384 selectionForeground = clrSelectionText; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3385 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3386 nmcd.nmcd.uItemState &= ~OS.CDIS_SELECTED; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3387 OS.MoveMemory (lParam, nmcd, NMLVCUSTOMDRAW.sizeof); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3388 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3389 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3390 if (ignoreDrawSelection) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3391 nmcd.nmcd.uItemState |= OS.CDIS_SELECTED; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3392 OS.MoveMemory (lParam, nmcd, NMLVCUSTOMDRAW.sizeof); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3393 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3394 } |
213 | 3395 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3396 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3397 bool firstColumn = nmcd.iSubItem is OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3398 if (ignoreDrawForeground && ignoreDrawHot) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3399 if (!ignoreDrawBackground && drawBackground) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3400 RECT backgroundRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, false, true, false, hDC); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3401 fillBackground (hDC, clrTextBk, &backgroundRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3402 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3403 } |
213 | 3404 focusRect = null; |
3405 if (!ignoreDrawHot || !ignoreDrawSelection || !ignoreDrawFocus) { | |
3406 bool fullText = (style & DWT.FULL_SELECTION) !is 0 || !firstColumn; | |
3407 RECT textRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, false, fullText, false, hDC); | |
3408 if ((style & DWT.FULL_SELECTION) is 0) { | |
3409 if (measureEvent !is null) { | |
3410 textRect.right = Math.min (cellRect.right, measureEvent.x + measureEvent.width); | |
3411 } | |
3412 if (!ignoreDrawFocus) { | |
3413 nmcd.nmcd.uItemState &= ~OS.CDIS_FOCUS; | |
3414 OS.MoveMemory (cast(void*)lParam, &nmcd, NMLVCUSTOMDRAW.sizeof); | |
3415 focusRect = new RECT; | |
3416 *focusRect = textRect; | |
3417 } | |
3418 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3419 if (explorerTheme) { |
213 | 3420 if (!ignoreDrawHot || (!ignoreDrawSelection && clrSelectionBk !is -1)) { |
3421 bool hot = drawHot; | |
3422 RECT pClipRect; | |
3423 OS.SetRect (&pClipRect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
3424 RECT rect; | |
3425 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
3426 if ((style & DWT.FULL_SELECTION) !is 0) { | |
3427 int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0); | |
3428 int index = OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, count - 1, 0); | |
3429 RECT headerRect; | |
3430 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &headerRect); | |
3431 OS.MapWindowPoints (hwndHeader, handle, cast(POINT*) &headerRect, 2); | |
3432 rect.left = 0; | |
3433 rect.right = headerRect.right; | |
3434 pClipRect.left = cellRect.left; | |
3435 pClipRect.right += EXPLORER_EXTRA; | |
3436 } else { | |
3437 rect.right += EXPLORER_EXTRA; | |
3438 pClipRect.right += EXPLORER_EXTRA; | |
3439 } | |
3440 auto hTheme = OS.OpenThemeData (handle, Display.LISTVIEW.ptr); | |
3441 int iStateId = selected ? OS.LISS_SELECTED : OS.LISS_HOT; | |
3442 if (OS.GetFocus () !is handle && selected && !hot) iStateId = OS.LISS_SELECTEDNOTFOCUS; | |
3443 OS.DrawThemeBackground (hTheme, hDC, OS.LVP_LISTITEM, iStateId, &rect, &pClipRect); | |
3444 OS.CloseThemeData (hTheme); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3445 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3446 } else { |
213 | 3447 if (!ignoreDrawSelection && clrSelectionBk !is -1) fillBackground (hDC, clrSelectionBk, &textRect); |
3448 } | |
3449 } | |
3450 if (focused && ignoreDrawFocus) { | |
3451 nmcd.nmcd.uItemState &= ~OS.CDIS_FOCUS; | |
3452 OS.MoveMemory (lParam, nmcd, NMLVCUSTOMDRAW.sizeof); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3453 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3454 if (ignoreDrawForeground) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3455 RECT clipRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, true, true, false, hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3456 OS.SaveDC (hDC); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3457 OS.SelectClipRgn (hDC, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3458 OS.ExcludeClipRect (hDC, clipRect.left, clipRect.top, clipRect.right, clipRect.bottom); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3459 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3460 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3461 |
213 | 3462 Event sendEraseItemEvent (TableItem item, NMTTCUSTOMDRAW* nmcd, int column, RECT* cellRect) { |
3463 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
3464 RECT* insetRect = toolTipInset (cellRect); | |
3465 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3466 GCData data = new GCData (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3467 data.device = display; |
213 | 3468 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); |
3469 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
3470 data.font = item.getFont (column); | |
3471 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); | |
3472 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
3473 Event event = new Event (); | |
3474 event.item = item; | |
3475 event.index = column; | |
3476 event.gc = gc; | |
3477 event.detail |= DWT.FOREGROUND; | |
3478 event.x = cellRect.left; | |
3479 event.y = cellRect.top; | |
3480 event.width = cellRect.right - cellRect.left; | |
3481 event.height = cellRect.bottom - cellRect.top; | |
3482 //gc.setClipping (event.x, event.y, event.width, event.height); | |
3483 sendEvent (DWT.EraseItem, event); | |
3484 event.gc = null; | |
3485 //int newTextClr = data.foreground; | |
3486 gc.dispose (); | |
3487 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
3488 return event; | |
3489 } | |
3490 | |
3491 Event sendMeasureItemEvent (TableItem item, int row, int column, HDC hDC) { | |
3492 GCData data = new GCData (); | |
3493 data.device = display; | |
3494 data.font = item.getFont (column); | |
3495 int nSavedDC = OS.SaveDC (hDC); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3496 GC gc = GC.win32_new (hDC, data); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3497 RECT itemRect = item.getBounds (row, column, true, true, false, false, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3498 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3499 event.item = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3500 event.gc = gc; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3501 event.index = column; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3502 event.x = itemRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3503 event.y = itemRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3504 event.width = itemRect.right - itemRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3505 event.height = itemRect.bottom - itemRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3506 sendEvent (DWT.MeasureItem, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3507 event.gc = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3508 gc.dispose (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3509 OS.RestoreDC (hDC, nSavedDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3510 if (!isDisposed () && !item.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3511 if (columnCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3512 int width = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3513 if (event.x + event.width > width) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3514 OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, event.x + event.width); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3515 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3516 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3517 if (event.height > getItemHeight ()) setItemHeight (event.height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3518 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3519 return event; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3520 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3521 |
213 | 3522 LRESULT sendMouseDownEvent (int type, int button, int msg, int /*long*/ wParam, int /*long*/ lParam) { |
3523 Display display = this.display; | |
3524 display.captureChanged = false; | |
3525 if (!sendMouseEvent (type, button, handle, msg, wParam, lParam)) { | |
3526 if (!display.captureChanged && !isDisposed ()) { | |
3527 if (OS.GetCapture () !is handle) OS.SetCapture (handle); | |
3528 } | |
3529 return LRESULT.ZERO; | |
3530 } | |
3531 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3532 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3533 * Feature in Windows. Inside WM_LBUTTONDOWN and WM_RBUTTONDOWN, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3534 * the widget starts a modal loop to determine if the user wants |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3535 * to begin a drag/drop operation or marque select. Unfortunately, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3536 * this modal loop eats the corresponding mouse up. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3537 * detect the cases when the modal loop has eaten the mouse up and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3538 * issue a fake mouse up. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3539 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3540 * By observation, when the mouse is clicked anywhere but the check |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3541 * box, the widget eats the mouse up. When the mouse is dragged, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3542 * the widget does not eat the mouse up. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3543 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3544 LVHITTESTINFO pinfo; |
213 | 3545 pinfo.pt.x = OS.GET_X_LPARAM (lParam); |
3546 pinfo.pt.y = OS.GET_Y_LPARAM (lParam); | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3547 OS.SendMessage (handle, OS.LVM_HITTEST, 0, &pinfo); |
213 | 3548 if ((style & DWT.FULL_SELECTION) is 0) { |
3549 if (hooks (DWT.MeasureItem)) { | |
3550 OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo); | |
3551 if (pinfo.iItem is -1) { | |
3552 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); | |
3553 if (count !is 0) { | |
3554 RECT rect; | |
3555 rect.left = OS.LVIR_ICON; | |
3556 ignoreCustomDraw = true; | |
3557 int /*long*/ code = OS.SendMessage (handle, OS.LVM_GETITEMRECT, 0, &rect); | |
3558 ignoreCustomDraw = false; | |
3559 if (code !is 0) { | |
3560 pinfo.pt.x = rect.left; | |
3561 OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo); | |
3562 pinfo.flags &= ~(OS.LVHT_ONITEMICON | OS.LVHT_ONITEMLABEL); | |
3563 } | |
3564 } | |
3565 } else { | |
3566 if (pinfo.iSubItem !is 0) pinfo.iItem = -1; | |
3567 } | |
3568 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3569 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3570 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3571 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3572 * Force the table to have focus so that when the user |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3573 * reselects the focus item, the LVIS_FOCUSED state bits |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3574 * for the item will be set. If the user did not click on |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3575 * an item, then set focus to the table so that it will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3576 * come to the front and take focus in the work around |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3577 * below. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3578 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3579 OS.SetFocus (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3580 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3581 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3582 * Feature in Windows. When the user selects outside of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3583 * a table item, Windows deselects all the items, even |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3584 * when the table is multi-select. While not strictly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3585 * wrong, this is unexpected. The fix is to detect the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3586 * case and avoid calling the window proc. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3587 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3588 if ((style & DWT.SINGLE) !is 0 || hooks (DWT.MouseDown) || hooks (DWT.MouseUp)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3589 if (pinfo.iItem is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3590 if (!display.captureChanged && !isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3591 if (OS.GetCapture () !is handle) OS.SetCapture (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3592 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3593 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3594 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3595 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3596 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3597 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3598 * Feature in Windows. When a table item is reselected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3599 * in a single-select table, Windows does not issue a |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3600 * WM_NOTIFY because the item state has not changed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3601 * This is strictly correct but is inconsistent with the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3602 * list widget and other widgets in Windows. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3603 * to detect the case when an item is reselected and mark |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3604 * it as selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3605 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3606 bool forceSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3607 int count = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3608 if (count is 1 && pinfo.iItem !is -1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3609 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3610 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3611 lvItem.stateMask = OS.LVIS_SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3612 lvItem.iItem = pinfo.iItem; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3613 OS.SendMessage (handle, OS.LVM_GETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3614 if ((lvItem.state & OS.LVIS_SELECTED) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3615 forceSelect = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3616 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3617 } |
213 | 3618 |
3619 /* Determine whether the user has selected an item based on DWT.MeasureItem */ | |
3620 fullRowSelect = false; | |
3621 if (pinfo.iItem !is -1) { | |
3622 if ((style & DWT.FULL_SELECTION) is 0) { | |
3623 if (hooks (DWT.MeasureItem)) { | |
3624 fullRowSelect = hitTestSelection (pinfo.iItem, pinfo.pt.x, pinfo.pt.y); | |
3625 if (fullRowSelect) { | |
3626 int flags = OS.LVHT_ONITEMICON | OS.LVHT_ONITEMLABEL; | |
3627 if ((pinfo.flags & flags) !is 0) fullRowSelect = false; | |
3628 } | |
3629 } | |
3630 } | |
3631 } | |
3632 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3633 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3634 * Feature in Windows. Inside WM_LBUTTONDOWN and WM_RBUTTONDOWN, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3635 * the widget starts a modal loop to determine if the user wants |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3636 * to begin a drag/drop operation or marque select. This modal |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3637 * loop eats mouse events until a drag is detected. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3638 * to avoid this behavior by only running the drag and drop when |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3639 * the event is hooked and the mouse is over an item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3640 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3641 bool dragDetect = (state & DRAG_DETECT) !is 0 && hooks (DWT.DragDetect); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3642 if (!dragDetect) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3643 int flags = OS.LVHT_ONITEMICON | OS.LVHT_ONITEMLABEL; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3644 dragDetect = pinfo.iItem is -1 || (pinfo.flags & flags) is 0; |
213 | 3645 if (fullRowSelect) dragDetect = true; |
3646 } | |
3647 | |
3648 /* | |
3649 * Temporarily set LVS_EX_FULLROWSELECT to allow drag and drop | |
3650 * and the mouse to manipulate items based on the results of | |
3651 * the DWT.MeasureItem event. | |
3652 */ | |
3653 if (fullRowSelect) { | |
3654 OS.UpdateWindow (handle); | |
3655 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); | |
3656 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_FULLROWSELECT, OS.LVS_EX_FULLROWSELECT); | |
3657 } | |
3658 dragStarted = false; | |
3659 display.dragCancelled = false; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3660 if (!dragDetect) display.runDragDrop = false; |
213 | 3661 int /*long*/ code = callWindowProc (handle, msg, wParam, lParam, forceSelect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3662 if (!dragDetect) display.runDragDrop = true; |
213 | 3663 if (fullRowSelect) { |
3664 fullRowSelect = false; | |
3665 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); | |
3666 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_FULLROWSELECT, 0); | |
3667 } | |
3668 | |
3669 if (dragStarted || display.dragCancelled) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3670 if (!display.captureChanged && !isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3671 if (OS.GetCapture () !is handle) OS.SetCapture (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3672 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3673 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3674 int flags = OS.LVHT_ONITEMLABEL | OS.LVHT_ONITEMICON; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3675 bool fakeMouseUp = (pinfo.flags & flags) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3676 if (!fakeMouseUp && (style & DWT.MULTI) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3677 fakeMouseUp = (pinfo.flags & OS.LVHT_ONITEMSTATEICON) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3678 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3679 if (fakeMouseUp) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3680 sendMouseEvent (DWT.MouseUp, button, handle, msg, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3681 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3682 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
3683 return new LRESULT (code); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3684 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3685 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3686 void sendPaintItemEvent (TableItem item, NMLVCUSTOMDRAW* nmcd) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3687 auto hDC = nmcd.nmcd.hdc; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3688 GCData data = new GCData (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3689 data.device = display; |
213 | 3690 data.font = item.getFont (nmcd.iSubItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3691 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3692 * Bug in Windows. For some reason, CDIS_SELECTED always set, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3693 * even for items that are not selected. The fix is to get |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3694 * the selection state from the item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3695 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3696 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3697 lvItem.mask = OS.LVIF_STATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3698 lvItem.stateMask = OS.LVIS_SELECTED; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3699 lvItem.iItem = nmcd.nmcd.dwItemSpec; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3700 int result = OS.SendMessage (handle, OS.LVM_GETITEM, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3701 bool selected = result !is 0 && (lvItem.state & OS.LVIS_SELECTED) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3702 bool drawSelected = false, drawBackground = false, drawHot = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3703 if (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3704 drawHot = hotIndex is nmcd.nmcd.dwItemSpec; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3705 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3706 if (OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3707 if (selected && (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0)) { |
213 | 3708 if (OS.GetFocus () is handle || display.getHighContrast ()) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3709 drawSelected = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3710 if (selectionForeground !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3711 data.foreground = selectionForeground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3712 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3713 data.foreground = OS.GetSysColor (OS.COLOR_HIGHLIGHTTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3714 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3715 data.background = OS.GetSysColor (OS.COLOR_HIGHLIGHT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3716 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3717 drawSelected = (style & DWT.HIDE_SELECTION) is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3718 data.foreground = OS.GetTextColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3719 data.background = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3720 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3721 if (explorerTheme && selectionForeground is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3722 int clrText = item.cellForeground !is null ? item.cellForeground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3723 if (clrText is -1) clrText = item.foreground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3724 data.foreground = clrText !is -1 ? clrText : getForegroundPixel (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3725 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3726 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3727 int clrText = item.cellForeground !is null ? item.cellForeground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3728 if (clrText is -1) clrText = item.foreground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3729 int clrTextBk = item.cellBackground !is null ? item.cellBackground [nmcd.iSubItem] : -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3730 if (clrTextBk is -1) clrTextBk = item.background; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3731 drawBackground = clrTextBk !is -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3732 /* |
213 | 3733 * Bug in Windows. When LVM_SETTEXTBKCOLOR, LVM_SETBKCOLOR |
3734 * or LVM_SETTEXTCOLOR is used to set the background color of | |
3735 * the the text or the control, the color is not set in the HDC | |
3736 * that is provided in Custom Draw. The fix is to explicitly | |
3737 * set the color. | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3738 */ |
213 | 3739 if (clrText is -1 || clrTextBk is -1) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3740 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3741 if (control is null) control = this; |
213 | 3742 if (clrText is -1) clrText = control.getForegroundPixel (); |
3743 if (clrTextBk is -1) clrTextBk = control.getBackgroundPixel (); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3744 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3745 data.foreground = clrText !is -1 ? clrText : OS.GetTextColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3746 data.background = clrTextBk !is -1 ? clrTextBk : OS.GetBkColor (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3747 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3748 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3749 data.foreground = OS.GetSysColor (OS.COLOR_GRAYTEXT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3750 data.background = OS.GetSysColor (OS.COLOR_3DFACE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3751 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3752 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3753 auto nSavedDC = OS.SaveDC (hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3754 GC gc = GC.win32_new (hDC, data); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3755 RECT itemRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, true, false, false, hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3756 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3757 event.item = item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3758 event.gc = gc; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3759 event.index = nmcd.iSubItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3760 event.detail |= DWT.FOREGROUND; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3761 // if ((nmcd.nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3762 if (OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED) is nmcd.nmcd.dwItemSpec) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3763 if (nmcd.iSubItem is 0 || (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3764 if (handle is OS.GetFocus ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3765 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3766 if ((uiState & OS.UISF_HIDEFOCUS) is 0) event.detail |= DWT.FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3767 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3768 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3769 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3770 if (drawHot) event.detail |= DWT.HOT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3771 if (drawSelected) event.detail |= DWT.SELECTED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3772 if (drawBackground) event.detail |= DWT.BACKGROUND; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3773 event.x = itemRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3774 event.y = itemRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3775 event.width = itemRect.right - itemRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3776 event.height = itemRect.bottom - itemRect.top; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3777 RECT cellRect = item.getBounds (nmcd.nmcd.dwItemSpec, nmcd.iSubItem, true, true, true, true, hDC); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3778 int cellWidth = cellRect.right - cellRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3779 int cellHeight = cellRect.bottom - cellRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3780 gc.setClipping (cellRect.left, cellRect.top, cellWidth, cellHeight); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3781 sendEvent (DWT.PaintItem, event); |
213 | 3782 if (data.focusDrawn) focusRect = null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3783 event.gc = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3784 gc.dispose (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3785 OS.RestoreDC (hDC, nSavedDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3786 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3787 |
213 | 3788 Event sendPaintItemEvent (TableItem item, NMTTCUSTOMDRAW* nmcd, int column, RECT* itemRect) { |
3789 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
3790 RECT* insetRect = toolTipInset (itemRect); | |
3791 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); | |
3792 GCData data = new GCData (); | |
3793 data.device = display; | |
3794 data.font = item.getFont (column); | |
3795 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); | |
3796 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
3797 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); | |
3798 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
3799 Event event = new Event (); | |
3800 event.item = item; | |
3801 event.index = column; | |
3802 event.gc = gc; | |
3803 event.detail |= DWT.FOREGROUND; | |
3804 event.x = itemRect.left; | |
3805 event.y = itemRect.top; | |
3806 event.width = itemRect.right - itemRect.left; | |
3807 event.height = itemRect.bottom - itemRect.top; | |
3808 //gc.setClipping (cellRect.left, cellRect.top, cellWidth, cellHeight); | |
3809 sendEvent (DWT.PaintItem, event); | |
3810 event.gc = null; | |
3811 gc.dispose (); | |
3812 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
3813 return event; | |
3814 } | |
3815 | |
3816 void setBackgroundImage (HBITMAP hBitmap) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3817 super.setBackgroundImage (hBitmap); |
213 | 3818 if (hBitmap !is null) { |
3819 setBackgroundTransparent (true); | |
3820 } else { | |
3821 if (!hooks (DWT.MeasureItem) && !hooks (DWT.EraseItem) && !hooks (DWT.PaintItem)) { | |
3822 setBackgroundTransparent (false); | |
3823 } | |
3824 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3825 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3826 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
3827 override void setBackgroundPixel (int newPixel) { |
213 | 3828 int oldPixel = OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0); |
3829 if (oldPixel !is OS.CLR_NONE) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3830 if (findImageControl () !is null) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3831 if (newPixel is -1) newPixel = defaultBackground (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3832 if (oldPixel !is newPixel) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3833 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, newPixel); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3834 OS.SendMessage (handle, OS.LVM_SETTEXTBKCOLOR, 0, newPixel); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3835 if ((style & DWT.CHECK) !is 0) fixCheckboxImageListColor (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3836 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3837 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3838 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3839 * Feature in Windows. When the background color is changed, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3840 * the table does not redraw until the next WM_PAINT. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3841 * is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3842 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3843 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3844 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3845 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3846 void setBackgroundTransparent (bool transparent) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3847 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3848 * Bug in Windows. When the table has the extended style |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3849 * LVS_EX_FULLROWSELECT and LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3850 * CLR_NONE to make the table transparent, Windows draws |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3851 * a black rectangle around the first column. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3852 * clear LVS_EX_FULLROWSELECT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3853 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3854 * Feature in Windows. When LVM_SETBKCOLOR is used with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3855 * CLR_NONE and LVM_SETSELECTEDCOLUMN is used to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3856 * a column, Windows fills the column with the selection |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3857 * color, drawing on top of the background image and any |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3858 * other custom drawing. The fix is to clear the selected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3859 * column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3860 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3861 int oldPixel = OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3862 if (transparent) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3863 if (oldPixel !is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3864 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3865 * Bug in Windows. When the background color is changed, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3866 * the table does not redraw until the next WM_PAINT. The |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3867 * fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3868 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3869 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, OS.CLR_NONE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3870 OS.SendMessage (handle, OS.LVM_SETTEXTBKCOLOR, 0, OS.CLR_NONE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3871 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3872 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3873 /* Clear LVS_EX_FULLROWSELECT */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3874 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3875 int bits = OS.LVS_EX_FULLROWSELECT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3876 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3877 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3878 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3879 /* Clear LVM_SETSELECTEDCOLUMN */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3880 if ((sortDirection & (DWT.UP | DWT.DOWN)) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3881 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3882 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, -1, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3883 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3884 * Bug in Windows. When LVM_SETSELECTEDCOLUMN is set, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3885 * does not redraw either the new or the previous selected column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3886 * The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3887 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3888 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3889 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3890 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3891 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3892 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3893 if (oldPixel is OS.CLR_NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3894 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3895 if (control is null) control = this; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3896 if (control.backgroundImage is null) { |
213 | 3897 int newPixel = control.getBackgroundPixel (); |
3898 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, newPixel); | |
3899 OS.SendMessage (handle, OS.LVM_SETTEXTBKCOLOR, 0, newPixel); | |
3900 if ((style & DWT.CHECK) !is 0) fixCheckboxImageListColor (true); | |
3901 OS.InvalidateRect (handle, null, true); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3902 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3903 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3904 /* Set LVS_EX_FULLROWSELECT */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3905 if (!explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3906 if (!hooks (DWT.EraseItem) && !hooks (DWT.PaintItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3907 int bits = OS.LVS_EX_FULLROWSELECT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3908 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, bits, bits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3909 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3910 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3911 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3912 /* Set LVM_SETSELECTEDCOLUMN */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3913 if ((sortDirection & (DWT.UP | DWT.DOWN)) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3914 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3915 int column = indexOf (sortColumn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3916 if (column !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3917 OS.SendMessage (handle, OS.LVM_SETSELECTEDCOLUMN, column, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3918 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3919 * Bug in Windows. When LVM_SETSELECTEDCOLUMN is set, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3920 * does not redraw either the new or the previous selected column. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3921 * The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3922 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3923 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3924 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3925 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3926 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3927 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3928 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3929 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3930 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
3931 override void setBounds (int x, int y, int width, int height, int flags, bool defer) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3932 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3933 * Bug in Windows. If the table column widths are adjusted |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3934 * in WM_SIZE or WM_POSITIONCHANGED using LVM_SETCOLUMNWIDTH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3935 * blank lines may be inserted at the top of the table. A |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3936 * call to LVM_GETTOPINDEX will return a negative number (this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3937 * is an impossible result). Once the blank lines appear, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3938 * there seems to be no way to get rid of them, other than |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3939 * destroying and recreating the table. The fix is to send |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3940 * the resize notification after the size has been changed in |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3941 * the operating system. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3942 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3943 * NOTE: This does not fix the case when the user is resizing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3944 * columns dynamically. There is no fix for this case at this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3945 * time. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3946 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3947 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3948 super.setBounds (x, y, width, height, flags, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3949 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3950 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3951 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3952 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3953 * Sets the order that the items in the receiver should |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3954 * be displayed in to the given argument which is described |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3955 * in terms of the zero-relative ordering of when the items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3956 * were added. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3957 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3958 * @param order the new order to display the items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3959 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3960 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3961 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3962 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3963 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3964 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3965 * <li>ERROR_NULL_ARGUMENT - if the item order is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3966 * <li>ERROR_INVALID_ARGUMENT - if the item order is not the same length as the number of items</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3967 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3968 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3969 * @see Table#getColumnOrder() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3970 * @see TableColumn#getMoveable() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3971 * @see TableColumn#setMoveable(bool) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3972 * @see DWT#Move |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3973 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3974 * @since 3.1 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3975 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3976 public void setColumnOrder (int [] order) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3977 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3978 if (order is null) error (DWT.ERROR_NULL_ARGUMENT); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3979 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3980 if (columnCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3981 if (order.length !is 0) error (DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3982 return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3983 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3984 if (order.length !is columnCount) error (DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3985 int [] oldOrder = new int [columnCount]; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3986 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, oldOrder.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3987 bool reorder = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3988 bool [] seen = new bool [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3989 for (int i=0; i<order.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3990 int index = order [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3991 if (index < 0 || index >= columnCount) error (DWT.ERROR_INVALID_RANGE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3992 if (seen [index]) error (DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3993 seen [index] = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3994 if (index !is oldOrder [i]) reorder = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3995 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3996 if (reorder) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3997 RECT [] oldRects = new RECT [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3998 for (int i=0; i<columnCount; i++) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3999 //oldRects [i] = new RECT (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4000 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, &oldRects [i]); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4001 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4002 OS.SendMessage (handle, OS.LVM_SETCOLUMNORDERARRAY, order.length, order.ptr); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4003 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4004 * Bug in Windows. When LVM_SETCOLUMNORDERARRAY is used to change |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4005 * the column order, the header redraws correctly but the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4006 * not. The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4007 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4008 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4009 TableColumn[] newColumns = new TableColumn [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4010 System.arraycopy (columns, 0, newColumns, 0, columnCount); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4011 RECT newRect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4012 for (int i=0; i<columnCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4013 TableColumn column = newColumns [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4014 if (!column.isDisposed ()) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4015 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, &newRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4016 if (newRect.left !is oldRects [i].left) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4017 column.updateToolTip (i); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4018 column.sendEvent (DWT.Move); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4019 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4020 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4021 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4022 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4023 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4024 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4025 void setCustomDraw (bool customDraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4026 if (this.customDraw is customDraw) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4027 if (!this.customDraw && customDraw && currentItem !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4028 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4029 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4030 this.customDraw = customDraw; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4031 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4032 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4033 void setDeferResize (bool defer) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4034 if (defer) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4035 if (resizeCount++ is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4036 wasResized = false; |
213 | 4037 /* |
4038 * Feature in Windows. When LVM_SETBKCOLOR is used with CLR_NONE | |
4039 * to make the background of the table transparent, drawing becomes | |
4040 * slow. The fix is to temporarily clear CLR_NONE when redraw is | |
4041 * turned off. | |
4042 */ | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4043 if (hooks (DWT.MeasureItem) || hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4044 if (drawCount++ is 0 && OS.IsWindowVisible (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4045 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); |
213 | 4046 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, 0xFFFFFF); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4047 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4048 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4049 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4050 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4051 if (--resizeCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4052 if (hooks (DWT.MeasureItem) || hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4053 if (--drawCount is 0 /*&& OS.IsWindowVisible (handle)*/) { |
213 | 4054 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, OS.CLR_NONE); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4055 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
117 | 4056 static if (OS.IsWinCE) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4057 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4058 if (hwndHeader !is null) OS.InvalidateRect (hwndHeader, null, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4059 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4060 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4061 int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE | OS.RDW_ALLCHILDREN; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4062 OS.RedrawWindow (handle, null, null, flags); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4063 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4064 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4065 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4066 if (wasResized) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4067 wasResized = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4068 setResizeChildren (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4069 sendEvent (DWT.Resize); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4070 if (isDisposed ()) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4071 if (layout_ !is null) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4072 markLayout (false, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4073 updateLayout (false, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4074 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4075 setResizeChildren (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4076 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4077 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4078 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4079 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4080 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4081 void setCheckboxImageList (int width, int height, bool fixScroll) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4082 if ((style & DWT.CHECK) is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4083 int count = 4, flags = 0; |
117 | 4084 static if (OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4085 flags |= OS.ILC_COLOR; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4086 } else { |
118
521e2e00d10f
fix Shell and compile error in Table
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
4087 {// new scope for hDC |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4088 auto hDC = OS.GetDC (handle); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4089 auto bits = OS.GetDeviceCaps (hDC, OS.BITSPIXEL); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4090 auto planes = OS.GetDeviceCaps (hDC, OS.PLANES); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4091 OS.ReleaseDC (handle, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4092 int depth = bits * planes; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4093 switch (depth) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4094 case 4: flags |= OS.ILC_COLOR4; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4095 case 8: flags |= OS.ILC_COLOR8; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4096 case 16: flags |= OS.ILC_COLOR16; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4097 case 24: flags |= OS.ILC_COLOR24; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4098 case 32: flags |= OS.ILC_COLOR32; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4099 default: flags |= OS.ILC_COLOR; break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4100 } |
118
521e2e00d10f
fix Shell and compile error in Table
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
4101 } |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4102 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4103 if ((style & DWT.RIGHT_TO_LEFT) !is 0) flags |= OS.ILC_MIRROR; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4104 if (OS.COMCTL32_MAJOR < 6 || !OS.IsAppThemed ()) flags |= OS.ILC_MASK; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4105 auto hStateList = OS.ImageList_Create (width, height, flags, count, count); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4106 auto hDC = OS.GetDC (handle); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4107 auto memDC = OS.CreateCompatibleDC (hDC); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4108 auto hBitmap = OS.CreateCompatibleBitmap (hDC, width * count, height); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4109 auto hOldBitmap = OS.SelectObject (memDC, hBitmap); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4110 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4111 OS.SetRect (&rect, 0, 0, width * count, height); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4112 int clrBackground; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4113 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4114 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4115 if (control is null) control = this; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4116 clrBackground = control.getBackgroundPixel (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4117 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4118 clrBackground = 0x020000FF; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4119 if ((clrBackground & 0xFFFFFF) is OS.GetSysColor (OS.COLOR_WINDOW)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4120 clrBackground = 0x0200FF00; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4121 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4122 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4123 auto hBrush = OS.CreateSolidBrush (clrBackground); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4124 OS.FillRect (memDC, &rect, hBrush); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4125 OS.DeleteObject (hBrush); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4126 auto oldFont = OS.SelectObject (hDC, defaultFont ()); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4127 TEXTMETRIC tm; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4128 OS.GetTextMetrics (hDC, &tm); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4129 OS.SelectObject (hDC, oldFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4130 int itemWidth = Math.min (tm.tmHeight, width); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4131 int itemHeight = Math.min (tm.tmHeight, height); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4132 int left = (width - itemWidth) / 2, top = (height - itemHeight) / 2 + 1; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4133 OS.SetRect (&rect, left, top, left + itemWidth, top + itemHeight); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4134 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4135 auto hTheme = display.hButtonTheme (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4136 OS.DrawThemeBackground (hTheme, memDC, OS.BP_CHECKBOX, OS.CBS_UNCHECKEDNORMAL, &rect, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4137 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4138 OS.DrawThemeBackground (hTheme, memDC, OS.BP_CHECKBOX, OS.CBS_CHECKEDNORMAL, &rect, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4139 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4140 OS.DrawThemeBackground (hTheme, memDC, OS.BP_CHECKBOX, OS.CBS_UNCHECKEDNORMAL, &rect, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4141 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4142 OS.DrawThemeBackground (hTheme, memDC, OS.BP_CHECKBOX, OS.CBS_MIXEDNORMAL, &rect, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4143 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4144 OS.DrawFrameControl (memDC, &rect, OS.DFC_BUTTON, OS.DFCS_BUTTONCHECK | OS.DFCS_FLAT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4145 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4146 OS.DrawFrameControl (memDC, &rect, OS.DFC_BUTTON, OS.DFCS_BUTTONCHECK | OS.DFCS_CHECKED | OS.DFCS_FLAT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4147 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4148 OS.DrawFrameControl (memDC, &rect, OS.DFC_BUTTON, OS.DFCS_BUTTONCHECK | OS.DFCS_INACTIVE | OS.DFCS_FLAT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4149 rect.left += width; rect.right += width; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4150 OS.DrawFrameControl (memDC, &rect, OS.DFC_BUTTON, OS.DFCS_BUTTONCHECK | OS.DFCS_CHECKED | OS.DFCS_INACTIVE | OS.DFCS_FLAT); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4151 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4152 OS.SelectObject (memDC, hOldBitmap); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4153 OS.DeleteDC (memDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4154 OS.ReleaseDC (handle, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4155 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4156 OS.ImageList_Add (hStateList, hBitmap, null); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4157 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4158 OS.ImageList_AddMasked (hStateList, hBitmap, clrBackground); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4159 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4160 OS.DeleteObject (hBitmap); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4161 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4162 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4163 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4164 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4165 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4166 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4167 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4168 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4169 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4170 int topIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4171 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4172 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4173 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4174 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4175 auto hOldStateList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_STATE, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4176 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_STATE, hStateList); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4177 if (hOldStateList !is null) OS.ImageList_Destroy (hOldStateList); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4178 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4179 * Bug in Windows. Setting the LVSIL_STATE state image list |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4180 * when the table already has a LVSIL_SMALL image list causes |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4181 * pixel corruption of the images. The fix is to reset the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4182 * LVSIL_SMALL image list. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4183 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4184 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4185 auto hImageList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_SMALL, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4186 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4187 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4188 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4189 setTopIndex (topIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4190 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4191 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4192 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4193 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4194 void setFocusIndex (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4195 // checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4196 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4197 * An index of -1 will apply the change to all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4198 * items. Ensure that index is greater than -1. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4199 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4200 if (index < 0) return; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4201 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4202 lvItem.state = OS.LVIS_FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4203 lvItem.stateMask = OS.LVIS_FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4204 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4205 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, index, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4206 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4207 OS.SendMessage (handle, OS.LVM_SETSELECTIONMARK, 0, index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4208 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4209 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
4210 override public void setFont (Font font) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4211 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4212 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4213 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4214 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4215 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4216 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4217 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4218 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4219 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4220 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4221 int topIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4222 if (topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4223 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4224 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4225 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4226 if (itemHeight !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4227 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4228 OS.SetWindowLong (handle, OS.GWL_STYLE, bits | OS.LVS_OWNERDRAWFIXED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4229 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4230 super.setFont (font); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4231 if (itemHeight !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4232 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4233 OS.SetWindowLong (handle, OS.GWL_STYLE, bits & ~OS.LVS_OWNERDRAWFIXED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4234 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4235 setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4236 if (topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4237 setTopIndex (topIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4238 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4239 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4240 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4241 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4242 * Bug in Windows. Setting the font will cause the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4243 * to be redrawn but not the column headers. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4244 * to force a redraw of the column headers. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4245 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4246 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4247 OS.InvalidateRect (hwndHeader, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4248 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4249 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
4250 override void setForegroundPixel (int pixel) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4251 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4252 * The Windows table control uses CLR_DEFAULT to indicate |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4253 * that it is using the default foreground color. This |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4254 * is undocumented. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4255 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4256 if (pixel is -1) pixel = OS.CLR_DEFAULT; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4257 OS.SendMessage (handle, OS.LVM_SETTEXTCOLOR, 0, pixel); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4258 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4259 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4260 * Feature in Windows. When the foreground color is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4261 * changed, the table does not redraw until the next |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4262 * WM_PAINT. The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4263 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4264 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4265 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4266 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4267 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4268 * Marks the receiver's header as visible if the argument is <code>true</code>, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4269 * and marks it invisible otherwise. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4270 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4271 * If one of the receiver's ancestors is not visible or some |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4272 * other condition makes the receiver not visible, marking |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4273 * it visible may not actually cause it to be displayed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4274 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4275 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4276 * @param show the new visibility state |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4277 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4278 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4279 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4280 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4281 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4282 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4283 public void setHeaderVisible (bool show) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4284 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4285 int newBits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4286 newBits &= ~OS.LVS_NOCOLUMNHEADER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4287 if (!show) newBits |= OS.LVS_NOCOLUMNHEADER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4288 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4289 * Feature in Windows. Setting or clearing LVS_NOCOLUMNHEADER |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4290 * causes the table to scroll to the beginning. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4291 * save and restore the top index causing the table to scroll |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4292 * to the new location. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4293 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4294 int oldIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4295 OS.SetWindowLong (handle, OS.GWL_STYLE, newBits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4296 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4297 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4298 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4299 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4300 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4301 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4302 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4303 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4304 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4305 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4306 int newIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4307 if (newIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4308 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4309 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4310 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4311 if (show) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4312 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4313 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) fixItemHeight (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4314 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4315 setTopIndex (oldIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4316 if (newIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4317 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4318 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4319 updateHeaderToolTips (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4320 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4321 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4322 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4323 * Sets the number of items contained in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4324 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4325 * @param count the number of items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4326 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4327 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4328 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4329 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4330 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4331 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4332 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4333 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4334 public void setItemCount (int count) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4335 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4336 count = Math.max (0, count); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4337 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4338 if (count is itemCount) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4339 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4340 bool isVirtual = (style & DWT.VIRTUAL) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4341 if (!isVirtual) setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4342 int index = count; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4343 while (index < itemCount) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4344 TableItem item = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4345 if (item !is null && !item.isDisposed ()) item.release (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4346 if (!isVirtual) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4347 ignoreSelect = ignoreShrink = true; |
213 | 4348 int /*long*/ code = OS.SendMessage (handle, OS.LVM_DELETEITEM, count, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4349 ignoreSelect = ignoreShrink = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4350 if (code is 0) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4351 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4352 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4353 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4354 if (index < itemCount) error (DWT.ERROR_ITEM_NOT_REMOVED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4355 int length = Math.max (4, (count + 3) / 4 * 4); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4356 TableItem [] newItems = new TableItem [length]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4357 System.arraycopy (items, 0, newItems, 0, Math.min (count, itemCount)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4358 items = newItems; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4359 if (isVirtual) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4360 int flags = OS.LVSICF_NOINVALIDATEALL | OS.LVSICF_NOSCROLL; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4361 OS.SendMessage (handle, OS.LVM_SETITEMCOUNT, count, flags); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4362 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4363 * Bug in Windows. When a virtual table contains items and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4364 * LVM_SETITEMCOUNT is used to set the new item count to zero, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4365 * Windows does not redraw the table. Note that simply not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4366 * specifying LVSICF_NOINVALIDATEALL or LVSICF_NOSCROLL does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4367 * correct the problem. The fix is to force a redraw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4368 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4369 if (count is 0 && itemCount !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4370 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4371 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4372 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4373 for (int i=itemCount; i<count; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4374 items [i] = new TableItem (this, DWT.NONE, i, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4375 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4376 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4377 if (!isVirtual) setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4378 if (itemCount is 0) setScrollWidth (null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4379 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4380 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4381 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4382 void setItemHeight (bool fixScroll) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4383 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4384 * Bug in Windows. Making any change to an item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4385 * changes the item height of a table while the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4386 * is scrolled can cause the lines to draw incorrectly. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4387 * This happens even when the lines are not currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4388 * visible and are shown afterwards. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4389 * save the top index, scroll to the top of the table |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4390 * and then restore the original top index. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4391 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4392 int topIndex = getTopIndex (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4393 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4394 setRedraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4395 setTopIndex (0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4396 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4397 if (itemHeight is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4398 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4399 * Feature in Windows. Windows has no API to restore the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4400 * defualt item height for a table. The fix is to use |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4401 * WM_SETFONT which recomputes and assigns the default item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4402 * height. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4403 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4404 auto hFont = cast(HFONT) OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4405 OS.SendMessage (handle, OS.WM_SETFONT, hFont, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4406 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4407 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4408 * Feature in Windows. Window has no API to set the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4409 * height for a table. The fix is to set temporarily set |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4410 * LVS_OWNERDRAWFIXED then resize the table, causing a |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4411 * WM_MEASUREITEM to be sent, then clear LVS_OWNERDRAWFIXED. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4412 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4413 forceResize (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4414 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4415 OS.GetWindowRect (handle, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4416 int width = rect.right - rect.left, height = rect.bottom - rect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4417 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4418 OS.SetWindowLong (handle, OS.GWL_STYLE, bits | OS.LVS_OWNERDRAWFIXED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4419 int flags = OS.SWP_NOACTIVATE | OS.SWP_NOMOVE | OS.SWP_NOREDRAW | OS.SWP_NOZORDER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4420 ignoreResize = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4421 SetWindowPos (handle, null , 0, 0, width, height + 1, flags); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4422 SetWindowPos (handle, null , 0, 0, width, height, flags); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4423 ignoreResize = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4424 OS.SetWindowLong (handle, OS.GWL_STYLE, bits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4425 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4426 if (fixScroll && topIndex !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4427 setTopIndex (topIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4428 setRedraw (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4429 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4430 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4431 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4432 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4433 * Sets the height of the area which would be used to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4434 * display <em>one</em> of the items in the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4435 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4436 * @param itemHeight the height of one item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4437 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4438 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4439 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4440 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4441 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4442 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4443 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4444 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4445 /*public*/ void setItemHeight (int itemHeight) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4446 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4447 if (itemHeight < -1) error (DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4448 this.itemHeight = itemHeight; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4449 setItemHeight (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4450 setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4451 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4452 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4453 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4454 * Marks the receiver's lines as visible if the argument is <code>true</code>, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4455 * and marks it invisible otherwise. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4456 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4457 * If one of the receiver's ancestors is not visible or some |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4458 * other condition makes the receiver not visible, marking |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4459 * it visible may not actually cause it to be displayed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4460 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4461 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4462 * @param show the new visibility state |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4463 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4464 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4465 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4466 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4467 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4468 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4469 public void setLinesVisible (bool show) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4470 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4471 int newBits = show ? OS.LVS_EX_GRIDLINES : 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4472 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_GRIDLINES, newBits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4473 if (show) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4474 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4475 if ((bits & OS.LVS_NOCOLUMNHEADER) is 0) fixItemHeight (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4476 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4477 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4478 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
4479 override public void setRedraw (bool redraw) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4480 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4481 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4482 * Feature in Windows. When WM_SETREDRAW is used to turn |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4483 * off drawing in a widget, it clears the WS_VISIBLE bits |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4484 * and then sets them when redraw is turned back on. This |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4485 * means that WM_SETREDRAW will make a widget unexpectedly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4486 * visible. The fix is to track the visibility state while |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4487 * drawing is turned off and restore it when drawing is turned |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4488 * back on. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4489 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4490 if (drawCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4491 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4492 if ((bits & OS.WS_VISIBLE) is 0) state |= HIDDEN; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4493 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4494 if (redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4495 if (--drawCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4496 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4497 * When many items are added to a table, it is faster to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4498 * temporarily unsubclass the window proc so that messages |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4499 * are dispatched directly to the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4500 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4501 * NOTE: This is optimization somewhat dangerous because any |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4502 * operation can occur when redraw is turned off, even operations |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4503 * where the table must be subclassed in order to have the correct |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4504 * behavior or work around a Windows bug. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4505 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4506 * This code is intentionally commented. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4507 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4508 // subclass (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4509 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4510 /* Set the width of the horizontal scroll bar */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4511 setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4512 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4513 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4514 * Bug in Windows. For some reason, when WM_SETREDRAW is used |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4515 * to turn redraw back on this may result in a WM_SIZE. If the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4516 * table column widths are adjusted in WM_SIZE, blank lines may |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4517 * be inserted at the top of the widget. A call to LVM_GETTOPINDEX |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4518 * will return a negative number (this is an impossible result). |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4519 * The fix is to send the resize notification after the size has |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4520 * been changed in the operating system. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4521 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4522 setDeferResize (true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4523 OS.SendMessage (handle, OS.WM_SETREDRAW, 1, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4524 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4525 if (hwndHeader !is null) OS.SendMessage (hwndHeader, OS.WM_SETREDRAW, 1, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4526 if ((state & HIDDEN) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4527 state &= ~HIDDEN; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4528 OS.ShowWindow (handle, OS.SW_HIDE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4529 } else { |
117 | 4530 static if (OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4531 OS.InvalidateRect (handle, null, false); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4532 if (hwndHeader !is null) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4533 OS.InvalidateRect (hwndHeader, null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4534 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4535 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4536 int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE | OS.RDW_ALLCHILDREN; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4537 OS.RedrawWindow (handle, null, null, flags); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4538 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4539 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4540 setDeferResize (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4541 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4542 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4543 if (drawCount++ is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4544 OS.SendMessage (handle, OS.WM_SETREDRAW, 0, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4545 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4546 if (hwndHeader !is null) OS.SendMessage (hwndHeader, OS.WM_SETREDRAW, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4547 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4548 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4549 * When many items are added to a table, it is faster to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4550 * temporarily unsubclass the window proc so that messages |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4551 * are dispatched directly to the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4552 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4553 * NOTE: This is optimization somewhat dangerous because any |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4554 * operation can occur when redraw is turned off, even operations |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4555 * where the table must be subclassed in order to have the correct |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4556 * behavior or work around a Windows bug. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4557 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4558 * This code is intentionally commented. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4559 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4560 // unsubclass (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4561 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4562 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4563 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4564 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4565 bool setScrollWidth (TableItem item, bool force) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4566 if (currentItem !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4567 if (currentItem !is item) fixScrollWidth = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4568 return false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4569 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4570 if (!force && (drawCount !is 0 || !OS.IsWindowVisible (handle))) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4571 fixScrollWidth = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4572 return false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4573 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4574 fixScrollWidth = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4575 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4576 * NOTE: It is much faster to measure the strings and compute the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4577 * width of the scroll bar in non-virtual table rather than using |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4578 * LVM_SETCOLUMNWIDTH with LVSCW_AUTOSIZE. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4579 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4580 if (columnCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4581 int newWidth = 0, imageIndent = 0, index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4582 int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4583 while (index < itemCount) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
4584 String string = null; |
213 | 4585 HFONT hFont = cast(HFONT)-1; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4586 if (item !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4587 string = item.text; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4588 imageIndent = Math.max (imageIndent, item.imageIndent); |
213 | 4589 hFont = item.fontHandle (0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4590 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4591 if (items [index] !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4592 TableItem tableItem = items [index]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4593 string = tableItem.text; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4594 imageIndent = Math.max (imageIndent, tableItem.imageIndent); |
213 | 4595 hFont = tableItem.fontHandle (0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4596 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4597 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4598 if (string !is null && string.length !is 0) { |
213 | 4599 if (hFont !is cast(HFONT)-1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4600 auto hDC = OS.GetDC (handle); |
213 | 4601 auto oldFont = OS.SelectObject (hDC, hFont); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4602 int flags = OS.DT_CALCRECT | OS.DT_SINGLELINE | OS.DT_NOPREFIX; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4603 TCHAR[] buffer = StrToTCHARs (getCodePage (), string, false); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4604 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4605 OS.DrawText (hDC, buffer.ptr, buffer.length, &rect, flags); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4606 OS.SelectObject (hDC, oldFont); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4607 OS.ReleaseDC (handle, hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4608 newWidth = Math.max (newWidth, rect.right - rect.left); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4609 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4610 TCHAR* buffer = StrToTCHARz (getCodePage (), string ); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4611 newWidth = Math.max (newWidth, OS.SendMessage (handle, OS.LVM_GETSTRINGWIDTH, 0, buffer)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4612 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4613 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4614 if (item !is null) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4615 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4616 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4617 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4618 * Bug in Windows. When the width of the first column is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4619 * small but not zero, Windows draws '...' outside of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4620 * bounds of the text. This is strange, but only causes |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4621 * problems when the item is selected. In this case, Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4622 * clears the '...' but doesn't redraw it when the item is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4623 * deselected, causing pixel corruption. The fix is to ensure |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4624 * that the column is at least wide enough to draw a single |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4625 * space. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4626 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4627 if (newWidth is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4628 TCHAR[] buffer = StrToTCHARs (getCodePage (), " ", true); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4629 newWidth = Math.max (newWidth, OS.SendMessage (handle, OS.LVM_GETSTRINGWIDTH, 0, buffer.ptr)); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4630 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4631 auto hStateList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_STATE, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4632 if (hStateList !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4633 int cx, cy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4634 OS.ImageList_GetIconSize (hStateList, &cx, &cy); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4635 newWidth += cx + INSET; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4636 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4637 auto hImageList = cast(HANDLE) OS.SendMessage (handle, OS.LVM_GETIMAGELIST, OS.LVSIL_SMALL, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4638 if (hImageList !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4639 int cx, cy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4640 OS.ImageList_GetIconSize (hImageList, &cx, &cy); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4641 newWidth += (imageIndent + 1) * cx; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4642 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4643 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4644 * Bug in Windows. When LVM_SETIMAGELIST is used to remove the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4645 * image list by setting it to NULL, the item width and height |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4646 * is not changed and space is reserved for icons despite the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4647 * fact that there are none. The fix is to set the image list |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4648 * to be very small before setting it to NULL. This causes |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4649 * Windows to reserve the smallest possible space when an image |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4650 * list is removed. In this case, the scroll width must be one |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4651 * pixel larger. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4652 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4653 newWidth++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4654 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4655 newWidth += INSET * 2; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4656 int oldWidth = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4657 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4658 newWidth += VISTA_EXTRA; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4659 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4660 if (newWidth > oldWidth) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4661 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4662 * Feature in Windows. When LVM_SETCOLUMNWIDTH is sent, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4663 * Windows draws right away instead of queuing a WM_PAINT. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4664 * This can cause recursive calls when called from paint |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4665 * or from messages that are retrieving the item data, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4666 * such as WM_NOTIFY, causing a stack overflow. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4667 * is to turn off redraw and queue a repaint, collapsing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4668 * the recursive calls. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4669 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4670 bool redraw = drawCount is 0 && OS.IsWindowVisible (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4671 if (redraw) OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4672 OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, newWidth); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4673 if (redraw) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4674 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
117 | 4675 static if (OS.IsWinCE) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4676 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4677 if (hwndHeader !is null) OS.InvalidateRect (hwndHeader, null, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4678 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4679 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4680 int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE | OS.RDW_ALLCHILDREN; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4681 OS.RedrawWindow (handle, null, null, flags); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4682 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4683 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4684 return true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4685 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4686 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4687 return false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4688 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4689 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4690 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4691 * Selects the items at the given zero-relative indices in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4692 * The current selection is cleared before the new items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4693 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4694 * Indices that are out of range and duplicate indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4695 * If the receiver is single-select and multiple indices are specified, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4696 * then all indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4697 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4698 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4699 * @param indices the indices of the items to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4700 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4701 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4702 * <li>ERROR_NULL_ARGUMENT - if the array of indices is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4703 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4704 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4705 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4706 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4707 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4708 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4709 * @see Table#deselectAll() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4710 * @see Table#select(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4711 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4712 public void setSelection (int [] indices) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4713 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4714 if (indices is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4715 deselectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4716 int length = indices.length; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4717 if (length is 0 || ((style & DWT.SINGLE) !is 0 && length > 1)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4718 select (indices); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4719 int focusIndex = indices [0]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4720 if (focusIndex !is -1) setFocusIndex (focusIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4721 showSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4722 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4723 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4724 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4725 * Sets the receiver's selection to the given item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4726 * The current selection is cleared before the new item is selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4727 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4728 * If the item is not in the receiver, then it is ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4729 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4730 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4731 * @param item the item to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4732 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4733 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4734 * <li>ERROR_NULL_ARGUMENT - if the item is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4735 * <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4736 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4737 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4738 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4739 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4740 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4741 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4742 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4743 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4744 public void setSelection (TableItem item) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4745 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4746 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4747 setSelection ([item]); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4748 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4749 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4750 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4751 * Sets the receiver's selection to be the given array of items. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4752 * The current selection is cleared before the new items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4753 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4754 * Items that are not in the receiver are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4755 * If the receiver is single-select and multiple items are specified, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4756 * then all items are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4757 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4758 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4759 * @param items the array of items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4760 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4761 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4762 * <li>ERROR_NULL_ARGUMENT - if the array of items is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4763 * <li>ERROR_INVALID_ARGUMENT - if one of the items has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4764 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4765 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4766 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4767 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4768 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4769 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4770 * @see Table#deselectAll() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4771 * @see Table#select(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4772 * @see Table#setSelection(int[]) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4773 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4774 public void setSelection (TableItem [] items) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4775 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4776 if (items is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4777 deselectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4778 int length = items.length; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4779 if (length is 0 || ((style & DWT.SINGLE) !is 0 && length > 1)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4780 int focusIndex = -1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4781 for (int i=length-1; i>=0; --i) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4782 int index = indexOf (items [i]); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4783 if (index !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4784 select (focusIndex = index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4785 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4786 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4787 if (focusIndex !is -1) setFocusIndex (focusIndex); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4788 showSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4789 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4790 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4791 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4792 * Selects the item at the given zero-relative index in the receiver. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4793 * The current selection is first cleared, then the new item is selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4794 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4795 * @param index the index of the item to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4796 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4797 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4798 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4799 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4800 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4801 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4802 * @see Table#deselectAll() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4803 * @see Table#select(int) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4804 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4805 public void setSelection (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4806 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4807 deselectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4808 select (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4809 if (index !is -1) setFocusIndex (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4810 showSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4811 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4812 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4813 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4814 * Selects the items in the range specified by the given zero-relative |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4815 * indices in the receiver. The range of indices is inclusive. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4816 * The current selection is cleared before the new items are selected. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4817 * <p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4818 * Indices that are out of range are ignored and no items will be selected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4819 * if start is greater than end. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4820 * If the receiver is single-select and there is more than one item in the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4821 * given range, then all indices are ignored. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4822 * </p> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4823 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4824 * @param start the start index of the items to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4825 * @param end the end index of the items to select |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4826 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4827 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4828 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4829 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4830 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4831 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4832 * @see Table#deselectAll() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4833 * @see Table#select(int,int) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4834 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4835 public void setSelection (int start, int end) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4836 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4837 deselectAll (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4838 if (end < 0 || start > end || ((style & DWT.SINGLE) !is 0 && start !is end)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4839 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4840 if (count is 0 || start >= count) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4841 start = Math.max (0, start); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4842 end = Math.min (end, count - 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4843 select (start, end); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4844 setFocusIndex (start); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4845 showSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4846 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4847 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4848 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4849 * Sets the column used by the sort indicator for the receiver. A null |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4850 * value will clear the sort indicator. The current sort column is cleared |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4851 * before the new column is set. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4852 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4853 * @param column the column used by the sort indicator or <code>null</code> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4854 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4855 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4856 * <li>ERROR_INVALID_ARGUMENT - if the column is disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4857 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4858 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4859 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4860 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4861 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4862 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4863 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4864 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4865 public void setSortColumn (TableColumn column) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4866 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4867 if (column !is null && column.isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4868 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4869 sortColumn.setSortDirection (DWT.NONE); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4870 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4871 sortColumn = column; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4872 if (sortColumn !is null && sortDirection !is DWT.NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4873 sortColumn.setSortDirection (sortDirection); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4874 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4875 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4876 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4877 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4878 * Sets the direction of the sort indicator for the receiver. The value |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4879 * can be one of <code>UP</code>, <code>DOWN</code> or <code>NONE</code>. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4880 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4881 * @param direction the direction of the sort indicator |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4882 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4883 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4884 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4885 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4886 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4887 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4888 * @since 3.2 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4889 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4890 public void setSortDirection (int direction) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4891 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4892 if ((direction & (DWT.UP | DWT.DOWN)) is 0 && direction !is DWT.NONE) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4893 sortDirection = direction; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4894 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4895 sortColumn.setSortDirection (direction); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4896 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4897 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4898 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4899 void setSubImagesVisible (bool visible) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4900 int dwExStyle = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4901 if (((dwExStyle & OS.LVS_EX_SUBITEMIMAGES) !is 0 ) is visible) return; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4902 int bits = visible ? OS.LVS_EX_SUBITEMIMAGES : 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4903 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_SUBITEMIMAGES, bits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4904 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4905 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4906 void setTableEmpty () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4907 if (imageList !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4908 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4909 * Bug in Windows. When LVM_SETIMAGELIST is used to remove the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4910 * image list by setting it to NULL, the item width and height |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4911 * is not changed and space is reserved for icons despite the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4912 * fact that there are none. The fix is to set the image list |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4913 * to be very small before setting it to NULL. This causes |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4914 * Windows to reserve the smallest possible space when an image |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4915 * list is removed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4916 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4917 auto hImageList = OS.ImageList_Create (1, 1, 0, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4918 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4919 OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4920 if (headerImageList !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4921 auto hHeaderImageList = headerImageList.getHandle (); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4922 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4923 OS.SendMessage (hwndHeader, OS.HDM_SETIMAGELIST, 0, hHeaderImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4924 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4925 OS.ImageList_Destroy (hImageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4926 display.releaseImageList (imageList); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4927 imageList = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4928 if (itemHeight !is -1) setItemHeight (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4929 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4930 if (!hooks (DWT.MeasureItem) && !hooks (DWT.EraseItem) && !hooks (DWT.PaintItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4931 Control control = findBackgroundControl (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4932 if (control is null) control = this; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4933 if (control.backgroundImage is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4934 setCustomDraw (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4935 setBackgroundTransparent (false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4936 if (OS.COMCTL32_MAJOR < 6) style &= ~DWT.DOUBLE_BUFFERED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4937 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4938 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4939 items = new TableItem [4]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4940 if (columnCount is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4941 OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4942 setScrollWidth (null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4943 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4944 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4945 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4946 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4947 * Sets the zero-relative index of the item which is currently |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4948 * at the top of the receiver. This index can change when items |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4949 * are scrolled or new items are added and removed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4950 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4951 * @param index the index of the top item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4952 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4953 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4954 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4955 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4956 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4957 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4958 public void setTopIndex (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4959 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4960 int topIndex = OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4961 if (index is topIndex) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4962 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4963 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4964 * Bug in Windows. For some reason, LVM_SCROLL refuses to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4965 * scroll a table vertically when the width and height of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4966 * the table is smaller than a certain size. The values |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4967 * that seem to cause the problem are width=68 and height=6 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4968 * but there is no guarantee that these values cause the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4969 * failure on different machines or on different versions |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4970 * of Windows. It may depend on the font and any number |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4971 * of other factors. For example, setting the font to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4972 * anything but the default sometimes fixes the problem. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4973 * The fix is to use LVM_GETCOUNTPERPAGE to detect the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4974 * case when the number of visible items is zero and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4975 * use LVM_ENSUREVISIBLE to scroll the table to make the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4976 * index visible. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4977 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4978 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4979 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4980 * Bug in Windows. When the table header is visible and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4981 * there is not enough space to show a single table item, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4982 * LVM_GETCOUNTPERPAGE can return a negative number instead |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4983 * of zero. The fix is to test for negative or zero. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4984 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4985 if (OS.SendMessage (handle, OS.LVM_GETCOUNTPERPAGE, 0, 0) <= 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4986 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4987 * Bug in Windows. For some reason, LVM_ENSUREVISIBLE can |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4988 * scroll one item more or one item less when there is not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4989 * enough space to show a single table item. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4990 * to detect the case and call LVM_ENSUREVISIBLE again with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4991 * the same arguments. It seems that once LVM_ENSUREVISIBLE |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4992 * has scrolled into the general area, it is able to scroll |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4993 * to the exact item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4994 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4995 OS.SendMessage (handle, OS.LVM_ENSUREVISIBLE, index, 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4996 if (index !is OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4997 OS.SendMessage (handle, OS.LVM_ENSUREVISIBLE, index, 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4998 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4999 return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5000 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5001 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5002 /* Use LVM_SCROLL to scroll the table */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5003 RECT rect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5004 rect.left = OS.LVIR_BOUNDS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5005 ignoreCustomDraw = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5006 OS.SendMessage (handle, OS.LVM_GETITEMRECT, 0, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5007 ignoreCustomDraw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5008 int dy = (index - topIndex) * (rect.bottom - rect.top); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5009 OS.SendMessage (handle, OS.LVM_SCROLL, 0, dy); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5010 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5011 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5012 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5013 * Shows the column. If the column is already showing in the receiver, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5014 * this method simply returns. Otherwise, the columns are scrolled until |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5015 * the column is visible. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5016 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5017 * @param column the column to be shown |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5018 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5019 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5020 * <li>ERROR_NULL_ARGUMENT - if the column is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5021 * <li>ERROR_INVALID_ARGUMENT - if the column has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5022 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5023 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5024 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5025 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5026 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5027 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5028 * @since 3.0 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5029 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5030 public void showColumn (TableColumn column) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5031 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5032 if (column is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5033 if (column.isDisposed()) error(DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5034 if (column.parent !is this) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5035 int index = indexOf (column); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5036 if (!(0 <= index && index < columnCount)) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5037 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5038 * Feature in Windows. Calling LVM_GETSUBITEMRECT with -1 for the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5039 * row number gives the bounds of the item that would be above the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5040 * first row in the table. This is undocumented and does not work |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5041 * for the first column. In this case, to get the bounds of the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5042 * first column, get the bounds of the second column and subtract |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5043 * the width of the first. The left edge of the second column is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5044 * also used as the right edge of the first. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5045 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5046 RECT itemRect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5047 itemRect.left = OS.LVIR_BOUNDS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5048 if (index is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5049 itemRect.top = 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5050 ignoreCustomDraw = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5051 OS.SendMessage (handle, OS.LVM_GETSUBITEMRECT, -1, &itemRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5052 ignoreCustomDraw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5053 itemRect.right = itemRect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5054 int width = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5055 itemRect.left = itemRect.right - width; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5056 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5057 itemRect.top = index; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5058 ignoreCustomDraw = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5059 OS.SendMessage (handle, OS.LVM_GETSUBITEMRECT, -1, &itemRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5060 ignoreCustomDraw = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5061 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5062 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5063 * Bug in Windows. When a table that is drawing grid lines |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5064 * is slowly scrolled horizontally to the left, the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5065 * not redraw the newly exposed vertical grid lines. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5066 * is to save the old scroll position, call the window proc, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5067 * get the new scroll position and redraw the new area. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5068 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5069 int oldPos = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5070 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5071 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5072 SCROLLINFO info; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5073 info.cbSize = SCROLLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5074 info.fMask = OS.SIF_POS; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5075 OS.GetScrollInfo (handle, OS.SB_HORZ, &info); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5076 oldPos = info.nPos; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5077 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5078 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5079 OS.GetClientRect (handle, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5080 if (itemRect.left < rect.left) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5081 int dx = itemRect.left - rect.left; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5082 OS.SendMessage (handle, OS.LVM_SCROLL, dx, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5083 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5084 int width = Math.min (rect.right - rect.left, itemRect.right - itemRect.left); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5085 if (itemRect.left + width > rect.right) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5086 int dx = itemRect.left + width - rect.right; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5087 OS.SendMessage (handle, OS.LVM_SCROLL, dx, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5088 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5089 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5090 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5091 * Bug in Windows. When a table that is drawing grid lines |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5092 * is slowly scrolled horizontally to the left, the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5093 * not redraw the newly exposed vertical grid lines. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5094 * is to save the old scroll position, call the window proc, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5095 * get the new scroll position and redraw the new area. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5096 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5097 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5098 SCROLLINFO info; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5099 info.cbSize = SCROLLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5100 info.fMask = OS.SIF_POS; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5101 OS.GetScrollInfo (handle, OS.SB_HORZ, &info); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5102 int newPos = info.nPos; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5103 if (newPos < oldPos) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5104 rect.right = oldPos - newPos + GRID_WIDTH; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5105 OS.InvalidateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5106 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5107 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5108 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5109 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5110 void showItem (int index) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5111 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5112 * Bug in Windows. For some reason, when there is insufficient space |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5113 * to show an item, LVM_ENSUREVISIBLE causes blank lines to be |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5114 * inserted at the top of the widget. A call to LVM_GETTOPINDEX will |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5115 * return a negative number (this is an impossible result). The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5116 * is to use LVM_GETCOUNTPERPAGE to detect the case when the number |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5117 * of visible items is zero and use LVM_ENSUREVISIBLE with the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5118 * fPartialOK flag set to true to scroll the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5119 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5120 if (OS.SendMessage (handle, OS.LVM_GETCOUNTPERPAGE, 0, 0) <= 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5121 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5122 * Bug in Windows. For some reason, LVM_ENSUREVISIBLE can |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5123 * scroll one item more or one item less when there is not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5124 * enough space to show a single table item. The fix is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5125 * to detect the case and call LVM_ENSUREVISIBLE again with |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5126 * the same arguments. It seems that once LVM_ENSUREVISIBLE |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5127 * has scrolled into the general area, it is able to scroll |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5128 * to the exact item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5129 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5130 OS.SendMessage (handle, OS.LVM_ENSUREVISIBLE, index, 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5131 if (index !is OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5132 OS.SendMessage (handle, OS.LVM_ENSUREVISIBLE, index, 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5133 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5134 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5135 OS.SendMessage (handle, OS.LVM_ENSUREVISIBLE, index, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5136 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5137 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5138 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5139 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5140 * Shows the item. If the item is already showing in the receiver, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5141 * this method simply returns. Otherwise, the items are scrolled until |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5142 * the item is visible. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5143 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5144 * @param item the item to be shown |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5145 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5146 * @exception IllegalArgumentException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5147 * <li>ERROR_NULL_ARGUMENT - if the item is null</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5148 * <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5149 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5150 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5151 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5152 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5153 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5154 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5155 * @see Table#showSelection() |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5156 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5157 public void showItem (TableItem item) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5158 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5159 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5160 if (item.isDisposed()) error(DWT.ERROR_INVALID_ARGUMENT); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5161 int index = indexOf (item); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5162 if (index !is -1) showItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5163 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5164 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5165 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5166 * Shows the selection. If the selection is already showing in the receiver, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5167 * this method simply returns. Otherwise, the items are scrolled until |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5168 * the selection is visible. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5169 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5170 * @exception DWTException <ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5171 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5172 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5173 * </ul> |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5174 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5175 * @see Table#showItem(TableItem) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5176 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5177 public void showSelection () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5178 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5179 int index = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_SELECTED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5180 if (index !is -1) showItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5181 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5182 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5183 /*public*/ void sort () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5184 checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5185 // if ((style & DWT.VIRTUAL) !is 0) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5186 // int itemCount = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5187 // if (itemCount is 0 || itemCount is 1) return; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5188 // Comparator comparator = new Comparator () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5189 // int index = sortColumn is null ? 0 : indexOf (sortColumn); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5190 // public int compare (Object object1, Object object2) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5191 // TableItem item1 = (TableItem) object1, item2 = (TableItem) object2; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5192 // if (sortDirection is DWT.UP || sortDirection is DWT.NONE) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5193 // return item1.getText (index).compareTo (item2.getText (index)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5194 // } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5195 // return item2.getText (index).compareTo (item1.getText (index)); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5196 // } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5197 // } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5198 // }; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5199 // Arrays.sort (items, 0, itemCount, comparator); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5200 // redraw (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5201 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5202 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5203 override void subclass () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5204 super.subclass (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5205 if (HeaderProc !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5206 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 5207 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, display.windowProc); |
5208 } | |
5209 } | |
5210 | |
5211 RECT* toolTipInset (RECT* rect) { | |
5212 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
5213 RECT* insetRect = new RECT; | |
5214 OS.SetRect (insetRect, rect.left - 1, rect.top - 1, rect.right + 1, rect.bottom + 1); | |
5215 return insetRect; | |
5216 } | |
5217 return rect; | |
5218 } | |
5219 | |
5220 RECT* toolTipRect (RECT* rect) { | |
5221 RECT* toolRect = new RECT; | |
5222 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
5223 OS.SetRect (toolRect, rect.left - 1, rect.top - 1, rect.right + 1, rect.bottom + 1); | |
5224 } else { | |
5225 HWND hwndToolTip = cast(HWND)OS.SendMessage (handle, OS.LVM_GETTOOLTIPS, 0, 0); | |
5226 OS.SetRect (toolRect, rect.left, rect.top, rect.right, rect.bottom); | |
5227 int dwStyle = OS.GetWindowLong (hwndToolTip, OS.GWL_STYLE); | |
5228 int dwExStyle = OS.GetWindowLong (hwndToolTip, OS.GWL_EXSTYLE); | |
5229 OS.AdjustWindowRectEx (toolRect, dwStyle, false, dwExStyle); | |
5230 } | |
5231 return toolRect; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5232 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5233 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
5234 override String toolTipText (NMTTDISPINFO* hdr) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5235 auto hwndToolTip = cast(HWND) OS.SendMessage (handle, OS.LVM_GETTOOLTIPS, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5236 if (hwndToolTip is hdr.hdr.hwndFrom && toolTipText_ !is null) return ""; //$NON-NLS-1$ |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5237 if (headerToolTipHandle is hdr.hdr.hwndFrom) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5238 for (int i=0; i<columnCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5239 TableColumn column = columns [i]; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5240 if (column.id is hdr.hdr.idFrom) return column.toolTipText; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5241 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5242 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5243 return super.toolTipText (hdr); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5244 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5245 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5246 override void unsubclass () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5247 super.unsubclass (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5248 if (HeaderProc !is null) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5249 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 5250 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)HeaderProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5251 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5252 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5253 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5254 override void update (bool all) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5255 // checkWidget (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5256 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5257 * When there are many columns in a table, scrolling performance |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5258 * can be improved by temporarily unsubclassing the window proc |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5259 * so that internal messages are dispatched directly to the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5260 * If the application expects to see a paint event or has a child |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5261 * whose font, foreground or background color might be needed, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5262 * the window proc cannot be unsubclassed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5263 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5264 * NOTE: The header tooltip can subclass the header proc so the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5265 * current proc must be restored or header tooltips stop working. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5266 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5267 WNDPROC oldHeaderProc, oldTableProc; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5268 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 5269 bool fixSubclass = isOptimizedRedraw (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5270 if (fixSubclass) { |
213 | 5271 oldTableProc = cast(WNDPROC)OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TableProc); |
5272 oldHeaderProc = cast(WNDPROC)OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)HeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5273 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5274 super.update (all); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5275 if (fixSubclass) { |
213 | 5276 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)oldTableProc); |
5277 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)oldHeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5278 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5279 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5280 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5281 void updateHeaderToolTips () { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5282 if (headerToolTipHandle is null) return; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5283 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5284 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5285 TOOLINFO lpti; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5286 lpti.cbSize = TOOLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5287 lpti.uFlags = OS.TTF_SUBCLASS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5288 lpti.hwnd = hwndHeader; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5289 lpti.lpszText = OS.LPSTR_TEXTCALLBACK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5290 for (int i=0; i<columnCount; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5291 TableColumn column = columns [i]; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5292 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, &rect) !is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5293 lpti.uId = column.id = display.nextToolTipId++; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5294 lpti.rect.left = rect.left; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5295 lpti.rect.top = rect.top; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5296 lpti.rect.right = rect.right; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5297 lpti.rect.bottom = rect.bottom; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5298 OS.SendMessage (headerToolTipHandle, OS.TTM_ADDTOOL, 0, &lpti); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5299 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5300 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5301 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5302 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5303 override void updateImages () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5304 if (sortColumn !is null && !sortColumn.isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5305 if (OS.COMCTL32_MAJOR < 6) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5306 switch (sortDirection) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5307 case DWT.UP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5308 case DWT.DOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5309 sortColumn.setImage (display.getSortImage (sortDirection), true, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5310 break; |
82 | 5311 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5312 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5313 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5314 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5315 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5316 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5317 void updateMoveable () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5318 int index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5319 while (index < columnCount) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5320 if (columns [index].moveable) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5321 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5322 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5323 int newBits = index < columnCount ? OS.LVS_EX_HEADERDRAGDROP : 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5324 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_HEADERDRAGDROP, newBits); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5325 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5326 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5327 override int widgetStyle () { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5328 int bits = super.widgetStyle () | OS.LVS_SHAREIMAGELISTS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5329 if ((style & DWT.HIDE_SELECTION) is 0) bits |= OS.LVS_SHOWSELALWAYS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5330 if ((style & DWT.SINGLE) !is 0) bits |= OS.LVS_SINGLESEL; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5331 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5332 * This code is intentionally commented. In the future, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5333 * the FLAT bit may be used to make the header flat and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5334 * unresponsive to mouse clicks. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5335 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5336 // if ((style & DWT.FLAT) !is 0) bits |= OS.LVS_NOSORTHEADER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5337 bits |= OS.LVS_REPORT | OS.LVS_NOCOLUMNHEADER; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5338 if ((style & DWT.VIRTUAL) !is 0) bits |= OS.LVS_OWNERDATA; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5339 return bits; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5340 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5341 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
5342 override String windowClass () { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5343 return TCHARsToStr( TableClass ); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5344 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5345 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5346 override int windowProc () { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5347 return cast(int) TableProc; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5348 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5349 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5350 override int windowProc (HWND hwnd, int msg, int wParam, int lParam) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5351 if (handle is null) return 0; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5352 if (hwnd !is handle) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5353 switch (msg) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5354 /* This code is intentionally commented */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5355 // case OS.WM_CONTEXTMENU: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5356 // LRESULT result = wmContextMenu (hwnd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5357 // if (result !is null) return result.value; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5358 // break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5359 // } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5360 case OS.WM_CAPTURECHANGED: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5361 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5362 * Bug in Windows. When the capture changes during a |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5363 * header drag, Windows does not redraw the header item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5364 * such that the header remains pressed. For example, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5365 * when focus is assigned to a push button, the mouse is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5366 * pressed (but not released), then the SPACE key is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5367 * pressed to activate the button, the capture changes, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5368 * the header not notified and NM_RELEASEDCAPTURE is not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5369 * sent. The fix is to redraw the header when the capture |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5370 * changes to another control. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5371 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5372 * This does not happen on XP. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5373 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5374 if (OS.COMCTL32_MAJOR < 6) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5375 if (lParam !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5376 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5377 if (lParam !is cast(int)hwndHeader) OS.InvalidateRect (hwndHeader, null, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5378 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5379 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5380 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5381 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5382 case OS.WM_MOUSELEAVE: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5383 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5384 * Bug in Windows. On XP, when a tooltip is hidden |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5385 * due to a time out or mouse press, the tooltip |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5386 * remains active although no longer visible and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5387 * won't show again until another tooltip becomes |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5388 * active. The fix is to reset the tooltip bounds. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5389 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5390 if (OS.COMCTL32_MAJOR >= 6) updateHeaderToolTips (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5391 updateHeaderToolTips (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5392 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5393 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5394 case OS.WM_NOTIFY: { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5395 NMHDR* hdr = cast(NMHDR*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5396 //OS.MoveMemory (hdr, lParam, NMHDR.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5397 switch (hdr.code) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5398 case OS.TTN_SHOW: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5399 case OS.TTN_POP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5400 case OS.TTN_GETDISPINFOA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5401 case OS.TTN_GETDISPINFOW: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5402 return OS.SendMessage (handle, msg, wParam, lParam); |
82 | 5403 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5404 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5405 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5406 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5407 case OS.WM_SETCURSOR: { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5408 if (wParam is cast(int)hwnd) { |
213 | 5409 int hitTest = cast(short) OS.LOWORD (lParam); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5410 if (hitTest is OS.HTCLIENT) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5411 HDHITTESTINFO pinfo; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5412 int pos = OS.GetMessagePos (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5413 POINT pt; |
213 | 5414 OS.POINTSTOPOINT (pt, pos); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5415 OS.ScreenToClient (hwnd, &pt); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5416 pinfo.pt.x = pt.x; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5417 pinfo.pt.y = pt.y; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5418 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5419 int index = OS.SendMessage (hwndHeader, OS.HDM_HITTEST, 0, &pinfo); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5420 if (0 <= index && index < columnCount && !columns [index].resizable) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5421 if ((pinfo.flags & (OS.HHT_ONDIVIDER | OS.HHT_ONDIVOPEN)) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5422 OS.SetCursor (OS.LoadCursor (null, cast(TCHAR*)OS.IDC_ARROW)); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5423 return 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5424 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5425 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5426 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5427 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5428 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5429 } |
82 | 5430 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5431 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5432 return callWindowProc (hwnd, msg, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5433 } |
213 | 5434 if (msg is Display.DI_GETDRAGIMAGE) { |
5435 /* | |
5436 * Bug in Windows. For some reason, DI_GETDRAGIMAGE | |
5437 * returns an image that does not contain strings. | |
5438 * The fix is to disable the table window proc. | |
5439 * | |
5440 * NOTE: This only happens on Vista. | |
5441 */ | |
5442 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) return 0; | |
5443 //TEMPORARY CODE | |
5444 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) return 0; | |
5445 // if (getSelectionCount () !is 1) return 0; | |
5446 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5447 return super.windowProc (hwnd, msg, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5448 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5449 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5450 override LRESULT WM_CHAR (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5451 LRESULT result = super.WM_CHAR (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5452 if (result !is null) return result; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5453 switch (wParam) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5454 case ' ': |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5455 if ((style & DWT.CHECK) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5456 int index = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5457 if (index !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5458 TableItem item = _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5459 item.setChecked (!item.getChecked (), true); |
117 | 5460 static if (!OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5461 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, index + 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5462 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5463 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5464 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5465 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5466 * NOTE: Call the window proc with WM_KEYDOWN rather than WM_CHAR |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5467 * so that the key that was ignored during WM_KEYDOWN is processed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5468 * This allows the application to cancel an operation that is normally |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5469 * performed in WM_KEYDOWN from WM_CHAR. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5470 */ |
213 | 5471 int /*long*/ code = callWindowProc (handle, OS.WM_KEYDOWN, wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5472 return new LRESULT (code); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5473 case DWT.CR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5474 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5475 * Feature in Windows. Windows sends LVN_ITEMACTIVATE from WM_KEYDOWN |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5476 * instead of WM_CHAR. This means that application code that expects |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5477 * to consume the key press and therefore avoid a DWT.DefaultSelection |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5478 * event will fail. The fix is to ignore LVN_ITEMACTIVATE when it is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5479 * caused by WM_KEYDOWN and send DWT.DefaultSelection from WM_CHAR. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5480 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5481 int index = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5482 if (index !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5483 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5484 event.item = _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5485 postEvent (DWT.DefaultSelection, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5486 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5487 return LRESULT.ZERO; |
82 | 5488 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5489 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5490 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5491 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5492 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5493 override LRESULT WM_CONTEXTMENU (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5494 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5495 * Feature in Windows. For some reason, when the right |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5496 * mouse button is pressed over an item, Windows sends |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5497 * a WM_CONTEXTMENU from WM_RBUTTONDOWN, instead of from |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5498 * WM_RBUTTONUP. This causes two context menus requests |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5499 * to be sent. The fix is to ignore WM_CONTEXTMENU on |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5500 * mouse down. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5501 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5502 * NOTE: This only happens when dragging is disabled. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5503 * When the table is detecting drag, the WM_CONTEXTMENU |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5504 * is not sent WM_RBUTTONUP. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5505 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5506 if (!display.runDragDrop) return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5507 return super.WM_CONTEXTMENU (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5508 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5509 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5510 override LRESULT WM_ERASEBKGND (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5511 LRESULT result = super.WM_ERASEBKGND (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5512 if (findImageControl () !is null) return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5513 if (OS.COMCTL32_MAJOR < 6) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5514 if ((style & DWT.DOUBLE_BUFFERED) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5515 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5516 if ((bits & OS.LVS_EX_DOUBLEBUFFER) is 0) return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5517 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5518 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5519 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5520 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5521 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5522 override LRESULT WM_GETOBJECT (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5523 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5524 * Ensure that there is an accessible object created for this |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5525 * control because support for checked item accessibility is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5526 * temporarily implemented in the accessibility package. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5527 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5528 if ((style & DWT.CHECK) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5529 if (accessible is null) accessible = new_Accessible (this); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5530 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5531 return super.WM_GETOBJECT (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5532 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5533 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5534 override LRESULT WM_KEYDOWN (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5535 LRESULT result = super.WM_KEYDOWN (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5536 if (result !is null) return result; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5537 switch (wParam) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5538 case OS.VK_SPACE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5539 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5540 * Ensure that the window proc does not process VK_SPACE |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5541 * so that it can be handled in WM_CHAR. This allows the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5542 * application to cancel an operation that is normally |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5543 * performed in WM_KEYDOWN from WM_CHAR. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5544 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5545 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5546 case OS.VK_ADD: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5547 if (OS.GetKeyState (OS.VK_CONTROL) < 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5548 int index = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5549 while (index < columnCount) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5550 if (!columns [index].getResizable ()) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5551 index++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5552 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5553 if (index !is columnCount || hooks (DWT.MeasureItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5554 TableColumn [] newColumns = new TableColumn [columnCount]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5555 System.arraycopy (columns, 0, newColumns, 0, columnCount); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5556 for (int i=0; i<newColumns.length; i++) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5557 TableColumn column = newColumns [i]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5558 if (!column.isDisposed () && column.getResizable ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5559 column.pack (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5560 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5561 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5562 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5563 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5564 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5565 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5566 case OS.VK_PRIOR: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5567 case OS.VK_NEXT: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5568 case OS.VK_HOME: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5569 case OS.VK_END: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5570 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5571 * When there are many columns in a table, scrolling performance |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5572 * can be improved by temporarily unsubclassing the window proc |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5573 * so that internal messages are dispatched directly to the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5574 * If the application expects to see a paint event, the window |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5575 * proc cannot be unsubclassed or the event will not be seen. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5576 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5577 * NOTE: The header tooltip can subclass the header proc so the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5578 * current proc must be restored or header tooltips stop working. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5579 */ |
213 | 5580 int /*long*/ oldHeaderProc = 0, oldTableProc = 0; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5581 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 5582 bool fixSubclass = isOptimizedRedraw (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5583 if (fixSubclass) { |
213 | 5584 oldTableProc = OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TableProc); |
5585 oldHeaderProc = OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)HeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5586 } |
213 | 5587 int /*long*/ code = callWindowProc (handle, OS.WM_KEYDOWN, wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5588 result = code is 0 ? LRESULT.ZERO : new LRESULT (code); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5589 if (fixSubclass) { |
213 | 5590 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldTableProc); |
5591 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, oldHeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5592 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5593 //FALL THROUGH |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5594 case OS.VK_UP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5595 case OS.VK_DOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5596 OS.SendMessage (handle, OS.WM_CHANGEUISTATE, OS.UIS_INITIALIZE, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5597 break; |
82 | 5598 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5599 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5600 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5601 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5602 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5603 override LRESULT WM_KILLFOCUS (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5604 LRESULT result = super.WM_KILLFOCUS (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5605 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5606 * Bug in Windows. When focus is lost, Windows does not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5607 * redraw the selection properly, leaving the image and |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5608 * check box appearing selected. The fix is to redraw |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5609 * the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5610 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5611 if (imageList !is null || (style & DWT.CHECK) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5612 OS.InvalidateRect (handle, null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5613 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5614 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5615 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5616 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5617 override LRESULT WM_LBUTTONDBLCLK (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5618 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5619 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5620 * Feature in Windows. When the user selects outside of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5621 * a table item, Windows deselects all the items, even |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5622 * when the table is multi-select. While not strictly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5623 * wrong, this is unexpected. The fix is to detect the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5624 * case and avoid calling the window proc. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5625 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5626 LVHITTESTINFO pinfo; |
213 | 5627 pinfo.pt.x = OS.GET_X_LPARAM (lParam); |
5628 pinfo.pt.y = OS.GET_Y_LPARAM (lParam); | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5629 int index = OS.SendMessage (handle, OS.LVM_HITTEST, 0, &pinfo); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5630 Display display = this.display; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5631 display.captureChanged = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5632 sendMouseEvent (DWT.MouseDown, 1, handle, OS.WM_LBUTTONDOWN, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5633 if (!sendMouseEvent (DWT.MouseDoubleClick, 1, handle, OS.WM_LBUTTONDBLCLK, wParam, lParam)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5634 if (!display.captureChanged && !isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5635 if (OS.GetCapture () !is handle) OS.SetCapture (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5636 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5637 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5638 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5639 if (pinfo.iItem !is -1) callWindowProc (handle, OS.WM_LBUTTONDBLCLK, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5640 if (!display.captureChanged && !isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5641 if (OS.GetCapture () !is handle) OS.SetCapture (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5642 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5643 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5644 /* Look for check/uncheck */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5645 if ((style & DWT.CHECK) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5646 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5647 * Note that when the table has LVS_EX_FULLROWSELECT and the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5648 * user clicks anywhere on a row except on the check box, all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5649 * of the bits are set. The hit test flags are LVHT_ONITEM. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5650 * This means that a bit test for LVHT_ONITEMSTATEICON is not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5651 * the correct way to determine that the user has selected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5652 * the check box, equality is needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5653 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5654 if (index !is -1 && pinfo.flags is OS.LVHT_ONITEMSTATEICON) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5655 TableItem item = _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5656 item.setChecked (!item.getChecked (), true); |
117 | 5657 static if (!OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5658 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, index + 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5659 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5660 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5661 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5662 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5663 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5664 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5665 override LRESULT WM_LBUTTONDOWN (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5666 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5667 * Feature in Windows. For some reason, capturing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5668 * the mouse after processing the mouse event for the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5669 * widget interferes with the normal mouse processing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5670 * for the widget. The fix is to avoid the automatic |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5671 * mouse capture. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5672 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5673 LRESULT result = sendMouseDownEvent (DWT.MouseDown, 1, OS.WM_LBUTTONDOWN, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5674 if (result is LRESULT.ZERO) return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5675 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5676 /* Look for check/uncheck */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5677 if ((style & DWT.CHECK) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5678 LVHITTESTINFO pinfo; |
213 | 5679 pinfo.pt.x = OS.GET_X_LPARAM (lParam); |
5680 pinfo.pt.y = OS.GET_Y_LPARAM (lParam); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5681 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5682 * Note that when the table has LVS_EX_FULLROWSELECT and the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5683 * user clicks anywhere on a row except on the check box, all |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5684 * of the bits are set. The hit test flags are LVHT_ONITEM. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5685 * This means that a bit test for LVHT_ONITEMSTATEICON is not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5686 * the correct way to determine that the user has selected |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5687 * the check box, equality is needed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5688 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5689 int index = OS.SendMessage (handle, OS.LVM_HITTEST, 0, &pinfo); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5690 if (index !is -1 && pinfo.flags is OS.LVHT_ONITEMSTATEICON) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5691 TableItem item = _getItem (index); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5692 item.setChecked (!item.getChecked (), true); |
117 | 5693 static if (!OS.IsWinCE) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5694 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, index + 1); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5695 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5696 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5697 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5698 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5699 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5700 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5701 override LRESULT WM_MOUSEHOVER (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5702 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5703 * Feature in Windows. Despite the fact that hot |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5704 * tracking is not enabled, the hot tracking code |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5705 * in WM_MOUSEHOVER is executed causing the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5706 * under the cursor to be selected. The fix is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5707 * avoid calling the window proc. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5708 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5709 LRESULT result = super.WM_MOUSEHOVER (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5710 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5711 int mask = OS.LVS_EX_ONECLICKACTIVATE | OS.LVS_EX_TRACKSELECT | OS.LVS_EX_TWOCLICKACTIVATE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5712 if ((bits & mask) !is 0) return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5713 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5714 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5715 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5716 override LRESULT WM_PAINT (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5717 if (!ignoreShrink) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5718 /* Resize the item array to match the item count */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5719 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5720 if (items.length > 4 && items.length - count > 3) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5721 int length = Math.max (4, (count + 3) / 4 * 4); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5722 TableItem [] newItems = new TableItem [length]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5723 System.arraycopy (items, 0, newItems, 0, count); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5724 items = newItems; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5725 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5726 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5727 if (fixScrollWidth) setScrollWidth (null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5728 if (OS.COMCTL32_MAJOR < 6) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5729 if ((style & DWT.DOUBLE_BUFFERED) !is 0 || findImageControl () !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5730 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5731 if ((bits & OS.LVS_EX_DOUBLEBUFFER) is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5732 GC gc = null; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5733 HDC paintDC; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5734 PAINTSTRUCT ps; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5735 bool hooksPaint = hooks (DWT.Paint); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5736 if (hooksPaint) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5737 GCData data = new GCData (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5738 data.ps = &ps; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5739 data.hwnd = handle; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5740 gc = GC.win32_new (this, data); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5741 paintDC = gc.handle; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5742 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5743 paintDC = OS.BeginPaint (handle, &ps); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5744 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5745 int width = ps.rcPaint.right - ps.rcPaint.left; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5746 int height = ps.rcPaint.bottom - ps.rcPaint.top; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5747 if (width !is 0 && height !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5748 auto hDC = OS.CreateCompatibleDC (paintDC); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5749 POINT lpPoint1, lpPoint2; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5750 OS.SetWindowOrgEx (hDC, ps.rcPaint.left, ps.rcPaint.top, &lpPoint1); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5751 OS.SetBrushOrgEx (hDC, ps.rcPaint.left, ps.rcPaint.top, &lpPoint2); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5752 auto hBitmap = OS.CreateCompatibleBitmap (paintDC, width, height); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5753 auto hOldBitmap = OS.SelectObject (hDC, hBitmap); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5754 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) !is OS.CLR_NONE) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5755 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5756 OS.SetRect (&rect, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right, ps.rcPaint.bottom); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5757 drawBackground (hDC, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5758 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5759 callWindowProc (handle, OS.WM_PAINT, cast(int) hDC, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5760 OS.SetWindowOrgEx (hDC, lpPoint1.x, lpPoint1.y, null); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5761 OS.SetBrushOrgEx (hDC, lpPoint2.x, lpPoint2.y, null); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5762 OS.BitBlt (paintDC, ps.rcPaint.left, ps.rcPaint.top, width, height, hDC, 0, 0, OS.SRCCOPY); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5763 OS.SelectObject (hDC, hOldBitmap); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5764 OS.DeleteObject (hBitmap); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5765 OS.DeleteObject (hDC); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5766 if (hooksPaint) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5767 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5768 event.gc = gc; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5769 event.x = ps.rcPaint.left; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5770 event.y = ps.rcPaint.top; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5771 event.width = ps.rcPaint.right - ps.rcPaint.left; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5772 event.height = ps.rcPaint.bottom - ps.rcPaint.top; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5773 sendEvent (DWT.Paint, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5774 // widget could be disposed at this point |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5775 event.gc = null; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5776 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5777 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5778 if (hooksPaint) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5779 gc.dispose (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5780 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5781 OS.EndPaint (handle, &ps); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5782 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5783 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5784 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5785 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5786 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5787 return super.WM_PAINT (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5788 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5789 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5790 override LRESULT WM_RBUTTONDBLCLK (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5791 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5792 * Feature in Windows. When the user selects outside of |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5793 * a table item, Windows deselects all the items, even |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5794 * when the table is multi-select. While not strictly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5795 * wrong, this is unexpected. The fix is to detect the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5796 * case and avoid calling the window proc. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5797 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5798 LVHITTESTINFO pinfo; |
213 | 5799 pinfo.pt.x = OS.GET_X_LPARAM (lParam); |
5800 pinfo.pt.y = OS.GET_Y_LPARAM (lParam); | |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5801 OS.SendMessage (handle, OS.LVM_HITTEST, 0, &pinfo); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5802 Display display = this.display; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5803 display.captureChanged = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5804 sendMouseEvent (DWT.MouseDown, 3, handle, OS.WM_RBUTTONDOWN, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5805 if (sendMouseEvent (DWT.MouseDoubleClick, 3, handle, OS.WM_RBUTTONDBLCLK, wParam, lParam)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5806 if (pinfo.iItem !is -1) callWindowProc (handle, OS.WM_RBUTTONDBLCLK, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5807 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5808 if (!display.captureChanged && !isDisposed ()) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5809 if (OS.GetCapture () !is handle) OS.SetCapture (handle); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5810 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5811 return LRESULT.ZERO; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5812 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5813 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5814 override LRESULT WM_RBUTTONDOWN (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5815 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5816 * Feature in Windows. For some reason, capturing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5817 * the mouse after processing the mouse event for the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5818 * widget interferes with the normal mouse processing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5819 * for the widget. The fix is to avoid the automatic |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5820 * mouse capture. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5821 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5822 return sendMouseDownEvent (DWT.MouseDown, 3, OS.WM_RBUTTONDOWN, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5823 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5824 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5825 override LRESULT WM_SETFOCUS (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5826 LRESULT result = super.WM_SETFOCUS (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5827 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5828 * Bug in Windows. When focus is gained after the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5829 * selection has been changed using LVM_SETITEMSTATE, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5830 * Windows redraws the selected text but does not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5831 * redraw the image or the check box, leaving them |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5832 * appearing unselected. The fix is to redraw |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5833 * the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5834 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5835 if (imageList !is null || (style & DWT.CHECK) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5836 OS.InvalidateRect (handle, null, false); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5837 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5838 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5839 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5840 * Bug in Windows. For some reason, the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5841 * not set the default focus rectangle to be the first |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5842 * item in the table when it gets focus and there is |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5843 * no selected item. The fix to make the first item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5844 * be the focus item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5845 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5846 int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5847 if (count is 0) return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5848 int index = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5849 if (index is -1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5850 LVITEM lvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5851 lvItem.state = OS.LVIS_FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5852 lvItem.stateMask = OS.LVIS_FOCUSED; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5853 ignoreSelect = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5854 OS.SendMessage (handle, OS.LVM_SETITEMSTATE, 0, &lvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5855 ignoreSelect = false; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5856 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5857 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5858 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5859 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5860 override LRESULT WM_SETFONT (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5861 LRESULT result = super.WM_SETFONT (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5862 if (result !is null) return result; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5863 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5864 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5865 * Bug in Windows. When a header has a sort indicator |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5866 * triangle, Windows resizes the indicator based on the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5867 * size of the n-1th font. The fix is to always make |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5868 * the n-1th font be the default. This makes the sort |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5869 * indicator always be the default size. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5870 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5871 * NOTE: The table window proc sets the actual font in |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5872 * the header so that all that is necessary here is to |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5873 * set the default first. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5874 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5875 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5876 OS.SendMessage (hwndHeader, OS.WM_SETFONT, 0, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5877 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5878 if (headerToolTipHandle !is null) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5879 OS.SendMessage (headerToolTipHandle, OS.WM_SETFONT, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5880 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5881 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5882 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5883 |
213 | 5884 override LRESULT WM_SETREDRAW (int wParam, int lParam) { |
5885 LRESULT result = super.WM_SETREDRAW (wParam, lParam); | |
5886 if (result !is null) return result; | |
5887 /* | |
5888 * Feature in Windows. When LVM_SETBKCOLOR is used with CLR_NONE | |
5889 * to make the background of the table transparent, drawing becomes | |
5890 * slow. The fix is to temporarily clear CLR_NONE when redraw is | |
5891 * turned off. | |
5892 */ | |
5893 if (wParam is 1) { | |
5894 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) !is OS.CLR_NONE) { | |
5895 if (hooks (DWT.MeasureItem) || hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) { | |
5896 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, OS.CLR_NONE); | |
5897 } | |
5898 } | |
5899 } | |
5900 int /*long*/ code = callWindowProc (handle, OS.WM_SETREDRAW, wParam, lParam); | |
5901 if (wParam is 0) { | |
5902 if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) is OS.CLR_NONE) { | |
5903 OS.SendMessage (handle, OS.LVM_SETBKCOLOR, 0, 0xFFFFFF); | |
5904 } | |
5905 } | |
5906 return code is 0 ? LRESULT.ZERO : new LRESULT (code); | |
5907 } | |
5908 | |
5909 override LRESULT WM_SIZE (int /*long*/ wParam, int /*long*/ lParam) { | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5910 if (ignoreResize) return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5911 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5912 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5913 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5914 if (resizeCount !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5915 wasResized = true; |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5916 return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5917 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5918 return super.WM_SIZE (wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5919 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5920 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5921 override LRESULT WM_SYSCOLORCHANGE (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5922 LRESULT result = super.WM_SYSCOLORCHANGE (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
5923 if (result !is null) return result; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5924 if (findBackgroundControl () is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5925 setBackgroundPixel (defaultBackground ()); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5926 } else { |
213 | 5927 int oldPixel = OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0); |
5928 if (oldPixel !is OS.CLR_NONE) { | |
5929 if (findImageControl () is null) { | |
5930 if ((style & DWT.CHECK) !is 0) fixCheckboxImageListColor (true); | |
5931 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5932 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5933 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5934 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5935 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5936 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
5937 override LRESULT WM_HSCROLL (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5938 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5939 * Bug in Windows. When a table that is drawing grid lines |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5940 * is slowly scrolled horizontally to the left, the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5941 * not redraw the newly exposed vertical grid lines. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5942 * is to save the old scroll position, call the window proc, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5943 * get the new scroll position and redraw the new area. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5944 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5945 int oldPos = 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5946 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5947 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5948 SCROLLINFO info; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5949 info.cbSize = SCROLLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5950 info.fMask = OS.SIF_POS; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5951 OS.GetScrollInfo (handle, OS.SB_HORZ, &info); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5952 oldPos = info.nPos; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5953 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5954 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5955 /* |
213 | 5956 * Feature in Windows. When there are many columns in a table, |
5957 * scrolling performance can be improved by unsubclassing the | |
5958 * window proc so that internal messages are dispatched directly | |
5959 * to the table. If the application expects to see a paint event | |
5960 * or has a child whose font, foreground or background color might | |
5961 * be needed, the window proc cannot be unsubclassed | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5962 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5963 * NOTE: The header tooltip can subclass the header proc so the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5964 * current proc must be restored or header tooltips stop working. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5965 */ |
213 | 5966 WNDPROC oldHeaderProc, oldTableProc; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5967 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 5968 bool fixSubclass = isOptimizedRedraw (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5969 if (fixSubclass) { |
213 | 5970 oldTableProc = cast(WNDPROC)OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TableProc); |
5971 oldHeaderProc = cast(WNDPROC)OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)HeaderProc); | |
5972 } | |
5973 | |
5974 /* | |
5975 * Feature in Windows. For some reason, when the table window | |
5976 * proc processes WM_HSCROLL or WM_VSCROLL when there are many | |
5977 * columns in the table, scrolling is slow and the table does | |
5978 * not keep up with the position of the scroll bar. The fix | |
5979 * is to turn off redraw, scroll, turn redraw back on and redraw | |
5980 * the entire table. Strangly, redrawing the entire table is | |
5981 * faster. | |
5982 */ | |
5983 bool fixScroll = false; | |
5984 if (OS.LOWORD (wParam) !is OS.SB_ENDSCROLL) { | |
5985 if (OS.COMCTL32_MAJOR >= 6) { | |
5986 if (columnCount > H_SCROLL_LIMIT) { | |
5987 int rowCount = OS.SendMessage (handle, OS.LVM_GETCOUNTPERPAGE, 0, 0); | |
5988 if (rowCount > V_SCROLL_LIMIT) fixScroll = drawCount is 0 && OS.IsWindowVisible (handle); | |
5989 } | |
5990 } | |
5991 } | |
5992 if (fixScroll) OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5993 LRESULT result = super.WM_HSCROLL (wParam, lParam); |
213 | 5994 if (fixScroll) { |
5995 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); | |
5996 int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE | OS.RDW_ALLCHILDREN; | |
5997 OS.RedrawWindow (handle, null, null, flags); | |
5998 /* | |
5999 * Feature in Windows. On Vista only, it is faster to | |
6000 * compute and answer the data for the visible columns | |
6001 * of a table when scrolling, rather than just return | |
6002 * the data for each column when asked. | |
6003 */ | |
6004 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
6005 RECT headerRect, rect; | |
6006 OS.GetClientRect (handle, &rect); | |
6007 bool [] visible = new bool [columnCount]; | |
6008 for (int i=0; i<columnCount; i++) { | |
6009 visible [i] = true; | |
6010 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, &headerRect) !is 0) { | |
6011 OS.MapWindowPoints (hwndHeader, handle, cast(POINT*)&headerRect, 2); | |
6012 visible [i] = OS.IntersectRect(&headerRect, &rect, &headerRect) !is 0; | |
6013 } | |
6014 } | |
6015 try { | |
6016 display.hwndParent = OS.GetParent (handle); | |
6017 display.columnVisible = visible; | |
6018 OS.UpdateWindow (handle); | |
6019 } finally { | |
6020 display.columnVisible = null; | |
6021 } | |
6022 } | |
6023 } | |
6024 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6025 if (fixSubclass) { |
213 | 6026 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)oldTableProc); |
6027 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)oldHeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6028 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6029 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6030 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6031 * Bug in Windows. When a table that is drawing grid lines |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6032 * is slowly scrolled horizontally to the left, the table does |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6033 * not redraw the newly exposed vertical grid lines. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6034 * is to save the old scroll position, call the window proc, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6035 * get the new scroll position and redraw the new area. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6036 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6037 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6038 SCROLLINFO info; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6039 info.cbSize = SCROLLINFO.sizeof; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6040 info.fMask = OS.SIF_POS; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6041 OS.GetScrollInfo (handle, OS.SB_HORZ, &info); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6042 int newPos = info.nPos; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6043 if (newPos < oldPos) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6044 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6045 OS.GetClientRect (handle, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6046 rect.right = oldPos - newPos + GRID_WIDTH; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6047 OS.InvalidateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6048 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6049 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6050 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6051 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6052 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
6053 override LRESULT WM_VSCROLL (int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6054 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6055 * When there are many columns in a table, scrolling performance |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6056 * can be improved by temporarily unsubclassing the window proc |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6057 * so that internal messages are dispatched directly to the table. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6058 * If the application expects to see a paint event or has a child |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6059 * whose font, foreground or background color might be needed, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6060 * the window proc cannot be unsubclassed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6061 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6062 * NOTE: The header tooltip can subclass the header proc so the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6063 * current proc must be restored or header tooltips stop working. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6064 */ |
213 | 6065 WNDPROC oldHeaderProc, oldTableProc; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6066 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
213 | 6067 bool fixSubclass = isOptimizedRedraw (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6068 if (fixSubclass) { |
213 | 6069 oldTableProc = cast(WNDPROC)OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TableProc); |
6070 oldHeaderProc = cast(WNDPROC)OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)HeaderProc); | |
6071 } | |
6072 | |
6073 /* | |
6074 * Feature in Windows. For some reason, when the table window | |
6075 * proc processes WM_HSCROLL or WM_VSCROLL when there are many | |
6076 * columns in the table, scrolling is slow and the table does | |
6077 * not keep up with the position of the scroll bar. The fix | |
6078 * is to turn off redraw, scroll, turn redraw back on and redraw | |
6079 * the entire table. Strangly, redrawing the entire table is | |
6080 * faster. | |
6081 */ | |
6082 bool fixScroll = false; | |
6083 if (OS.LOWORD (wParam) !is OS.SB_ENDSCROLL) { | |
6084 if (OS.COMCTL32_MAJOR >= 6) { | |
6085 if (columnCount > H_SCROLL_LIMIT) { | |
6086 int rowCount = OS.SendMessage (handle, OS.LVM_GETCOUNTPERPAGE, 0, 0); | |
6087 if (rowCount > V_SCROLL_LIMIT) fixScroll = drawCount is 0 && OS.IsWindowVisible (handle); | |
6088 } | |
6089 } | |
6090 } | |
6091 if (fixScroll) OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6092 LRESULT result = super.WM_VSCROLL (wParam, lParam); |
213 | 6093 if (fixScroll) { |
6094 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); | |
6095 int flags = OS.RDW_ERASE | OS.RDW_FRAME | OS.RDW_INVALIDATE | OS.RDW_ALLCHILDREN; | |
6096 OS.RedrawWindow (handle, null, null, flags); | |
6097 /* | |
6098 * Feature in Windows. On Vista only, it is faster to | |
6099 * compute and answer the data for the visible columns | |
6100 * of a table when scrolling, rather than just return | |
6101 * the data for each column when asked. | |
6102 */ | |
6103 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
6104 RECT headerRect, rect; | |
6105 OS.GetClientRect (handle, &rect); | |
6106 bool [] visible = new bool [columnCount]; | |
6107 for (int i=0; i<columnCount; i++) { | |
6108 visible [i] = true; | |
6109 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, &headerRect) !is 0) { | |
6110 OS.MapWindowPoints (hwndHeader, handle, cast(POINT*)&headerRect, 2); | |
6111 visible [i] = OS.IntersectRect(&headerRect, &rect, &headerRect) !is 0; | |
6112 } | |
6113 } | |
6114 try { | |
6115 display.hwndParent = OS.GetParent (handle); | |
6116 display.columnVisible = visible; | |
6117 OS.UpdateWindow (handle); | |
6118 } finally { | |
6119 display.columnVisible = null; | |
6120 } | |
6121 } | |
6122 } | |
6123 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6124 if (fixSubclass) { |
213 | 6125 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)oldTableProc); |
6126 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, cast(LONG_PTR)oldHeaderProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6127 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6128 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6129 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6130 * Bug in Windows. When a table is drawing grid lines and the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6131 * user scrolls vertically up or down by a line or a page, the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6132 * table does not redraw the grid lines for newly exposed items. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6133 * The fix is to invalidate the items. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6134 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6135 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6136 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { |
213 | 6137 int code = OS.LOWORD (wParam); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6138 switch (code) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6139 case OS.SB_ENDSCROLL: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6140 case OS.SB_THUMBPOSITION: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6141 case OS.SB_THUMBTRACK: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6142 case OS.SB_TOP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6143 case OS.SB_BOTTOM: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6144 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6145 case OS.SB_LINEDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6146 case OS.SB_LINEUP: |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6147 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6148 OS.GetWindowRect (hwndHeader, &rect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6149 int headerHeight = rect.bottom - rect.top; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6150 RECT clientRect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6151 OS.GetClientRect (handle, &clientRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6152 clientRect.top += headerHeight; |
213 | 6153 int /*long*/ empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0); |
6154 int /*long*/ oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0); | |
6155 int itemHeight = OS.HIWORD (oneItem) - OS.HIWORD (empty); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6156 if (code is OS.SB_LINEDOWN) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6157 clientRect.top = clientRect.bottom - itemHeight - GRID_WIDTH; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6158 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6159 clientRect.bottom = clientRect.top + itemHeight + GRID_WIDTH; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6160 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6161 OS.InvalidateRect (handle, &clientRect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6162 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6163 case OS.SB_PAGEDOWN: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6164 case OS.SB_PAGEUP: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6165 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6166 break; |
82 | 6167 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6168 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6169 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6170 return result; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6171 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6172 |
54
0f25be5cbe6f
Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents:
31
diff
changeset
|
6173 override LRESULT wmMeasureChild (int wParam, int lParam) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6174 MEASUREITEMSTRUCT* struct_ = cast(MEASUREITEMSTRUCT*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6175 //OS.MoveMemory (struct_, lParam, MEASUREITEMSTRUCT.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6176 if (itemHeight is -1) { |
213 | 6177 int /*long*/ empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0); |
6178 int /*long*/ oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0); | |
6179 struct_.itemHeight = OS.HIWORD (oneItem) - OS.HIWORD (empty); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6180 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6181 struct_.itemHeight = itemHeight; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6182 } |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6183 //OS.MoveMemory (lParam, struct_, MEASUREITEMSTRUCT.sizeof); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
6184 return null; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6185 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6186 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6187 override LRESULT wmNotify (NMHDR* hdr, int wParam, int lParam) { |
213 | 6188 HWND hwndToolTip = cast(HWND) OS.SendMessage (handle, OS.LVM_GETTOOLTIPS, 0, 0); |
6189 if (hdr.hwndFrom is hwndToolTip) { | |
6190 LRESULT result = wmNotifyToolTip (hdr, wParam, lParam); | |
6191 if (result !is null) return result; | |
6192 } | |
6193 HWND hwndHeader = cast(HWND)OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6194 if (hdr.hwndFrom is hwndHeader) { |
213 | 6195 LRESULT result = wmNotifyHeader (hdr, wParam, lParam); |
6196 if (result !is null) return result; | |
6197 } | |
6198 return super.wmNotify (hdr, wParam, lParam); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6199 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6200 |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6201 override LRESULT wmNotifyChild (NMHDR* hdr, int wParam, int lParam) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6202 switch (hdr.code) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6203 case OS.LVN_ODFINDITEMA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6204 case OS.LVN_ODFINDITEMW: { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
85
diff
changeset
|
6205 if ((style & DWT.VIRTUAL) !is 0) return new LRESULT (-1); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6206 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6207 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6208 case OS.LVN_ODSTATECHANGED: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6209 if ((style & DWT.VIRTUAL) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6210 if (!ignoreSelect) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6211 NMLVODSTATECHANGE* lpStateChange = cast(NMLVODSTATECHANGE*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6212 //OS.MoveMemory (lpStateChange, lParam, NMLVODSTATECHANGE.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6213 bool oldSelected = (lpStateChange.uOldState & OS.LVIS_SELECTED) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6214 bool newSelected = (lpStateChange.uNewState & OS.LVIS_SELECTED) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6215 if (oldSelected !is newSelected) wasSelected = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6216 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6217 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6218 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6219 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6220 case OS.LVN_GETDISPINFOA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6221 case OS.LVN_GETDISPINFOW: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6222 // if (drawCount !is 0 || !OS.IsWindowVisible (handle)) break; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6223 NMLVDISPINFO* plvfi = cast(NMLVDISPINFO*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6224 //OS.MoveMemory (plvfi, lParam, NMLVDISPINFO.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6225 |
213 | 6226 bool [] visible = display.columnVisible; |
6227 if (visible !is null && !visible [plvfi.item.iSubItem]) { | |
6228 break; | |
6229 } | |
6230 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6231 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6232 * When an item is being deleted from a virtual table, do not |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6233 * allow the application to provide data for a new item that |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6234 * becomes visible until the item has been removed from the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6235 * items array. Because arbitrary application code can run |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6236 * during the callback, the items array might be accessed |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6237 * in an inconsistent state. Rather than answering the data |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6238 * right away, queue a redraw for later. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6239 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6240 if ((style & DWT.VIRTUAL) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6241 if (ignoreShrink) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6242 OS.SendMessage (handle, OS.LVM_REDRAWITEMS, plvfi.item.iItem, plvfi.item.iItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6243 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6244 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6245 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6246 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6247 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6248 * Feature in Windows. When a new table item is inserted |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6249 * using LVM_INSERTITEM in a table that is transparent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6250 * (ie. LVM_SETBKCOLOR has been called with CLR_NONE), |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6251 * TVM_INSERTITEM calls LVN_GETDISPINFO before the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6252 * has been added to the array. The fix is to check for |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6253 * null. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6254 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6255 TableItem item = _getItem (plvfi.item.iItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6256 if (item is null) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6257 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6258 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6259 * The cached flag is used by both virtual and non-virtual |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6260 * tables to indicate that Windows has asked at least once |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6261 * for a table item. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6262 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6263 if (!item.cached) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6264 if ((style & DWT.VIRTUAL) !is 0) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6265 lastIndexOf = plvfi.item.iItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6266 if (!checkData (item, lastIndexOf, false)) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6267 TableItem newItem = fixScrollWidth ? null : item; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6268 if (setScrollWidth (newItem, true)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6269 OS.InvalidateRect (handle, null, true); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6270 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6271 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6272 item.cached = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6273 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6274 if ((plvfi.item.mask & OS.LVIF_TEXT) !is 0) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
6275 String string = null; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6276 if (plvfi.item.iSubItem is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6277 string = item.text; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6278 } else { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
118
diff
changeset
|
6279 String [] strings = item.strings; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6280 if (strings !is null) string = strings [plvfi.item.iSubItem]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6281 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6282 if (string !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6283 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6284 * Bug in Windows. When pszText points to a zero length |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6285 * NULL terminated string, Windows correctly draws the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6286 * empty string but the cache of the bounds for the item |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6287 * is not reset. This means that when the text for the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6288 * item is set and then reset to an empty string, the |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6289 * selection draws using the bounds of the previous text. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6290 * The fix is to use a space rather than an empty string |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6291 * when anything but a tool tip is requested (to avoid |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6292 * a tool tip that is a single space). |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6293 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6294 * NOTE: This is only a problem for items in the first |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6295 * column. Assigning NULL to other columns stops Windows |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6296 * from drawing the selection when LVS_EX_FULLROWSELECT |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6297 * is set. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6298 */ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6299 int length_ = Math.min (string.length, plvfi.item.cchTextMax - 1); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6300 if (!tipRequested && plvfi.item.iSubItem is 0 && length_ is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6301 string = " "; //$NON-NLS-1$ |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6302 length_ = 1; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6303 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6304 char [] buffer = display.tableBuffer; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6305 if (buffer is null || plvfi.item.cchTextMax > buffer.length) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6306 buffer = display.tableBuffer = new char [plvfi.item.cchTextMax]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6307 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6308 string.getChars (0, length_, buffer, 0); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6309 buffer [length_++] = 0; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6310 static if (OS.IsUnicode) { |
85 | 6311 OS.MoveMemory (plvfi.item.pszText, StrToTCHARz( buffer[0..length_] ), length_ * 2); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6312 } else { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6313 OS.WideCharToMultiByte (getCodePage (), 0, buffer.ptr, length_, plvfi.item.pszText, plvfi.item.cchTextMax, null, null); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6314 byte dummy; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6315 OS.MoveMemory (plvfi.item.pszText + plvfi.item.cchTextMax - 1, &dummy, 1); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6316 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6317 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6318 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6319 bool move = false; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6320 if ((plvfi.item.mask & OS.LVIF_IMAGE) !is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6321 Image image = null; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6322 if (plvfi.item.iSubItem is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6323 image = item.image; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6324 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6325 Image [] images = item.images; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6326 if (images !is null) image = images [plvfi.item.iSubItem]; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6327 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6328 if (image !is null) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6329 plvfi.item.iImage = imageIndex (image, plvfi.item.iSubItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6330 move = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6331 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6332 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6333 if ((plvfi.item.mask & OS.LVIF_STATE) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6334 if (plvfi.item.iSubItem is 0) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6335 int state = 1; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6336 if (item.checked) state++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6337 if (item.grayed) state +=2; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6338 plvfi.item.state = state << 12; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6339 plvfi.item.stateMask = OS.LVIS_STATEIMAGEMASK; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6340 move = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6341 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6342 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6343 if ((plvfi.item.mask & OS.LVIF_INDENT) !is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6344 if (plvfi.item.iSubItem is 0) { |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6345 plvfi.item.iIndent = item.imageIndent; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6346 move = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6347 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6348 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6349 //if (move) OS.MoveMemory (lParam, plvfi, NMLVDISPINFO.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6350 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6351 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6352 case OS.NM_CUSTOMDRAW: { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6353 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6354 if (hdr.hwndFrom is hwndHeader) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6355 if (!customDraw && findImageControl () is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6356 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6357 * Feature in Windows. When the table is disabled, it draws |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6358 * with a gray background but does not gray the text. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6359 * is to explicitly gray the text using Custom Draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6360 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6361 if (OS.IsWindowEnabled (handle)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6362 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6363 * Feature in Windows. On Vista using the explorer theme, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6364 * Windows draws a vertical line to separate columns. When |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6365 * there is only a single column, the line looks strange. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6366 * The fix is to draw the background using custom draw. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6367 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6368 if (!explorerTheme || columnCount !is 0) break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6369 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6370 } |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6371 NMLVCUSTOMDRAW* nmcd = cast(NMLVCUSTOMDRAW*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6372 //OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6373 switch (nmcd.nmcd.dwDrawStage) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6374 case OS.CDDS_PREPAINT: return CDDS_PREPAINT (nmcd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6375 case OS.CDDS_ITEMPREPAINT: return CDDS_ITEMPREPAINT (nmcd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6376 case OS.CDDS_ITEMPOSTPAINT: return CDDS_ITEMPOSTPAINT (nmcd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6377 case OS.CDDS_SUBITEMPREPAINT: return CDDS_SUBITEMPREPAINT (nmcd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6378 case OS.CDDS_SUBITEMPOSTPAINT: return CDDS_SUBITEMPOSTPAINT (nmcd, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6379 case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (nmcd, wParam, lParam); |
82 | 6380 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6381 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6382 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6383 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6384 case OS.LVN_MARQUEEBEGIN: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6385 if ((style & DWT.SINGLE) !is 0) return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6386 if (hooks (DWT.MouseDown) || hooks (DWT.MouseUp)) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6387 return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6388 } |
213 | 6389 if ((style & DWT.RIGHT_TO_LEFT) !is 0) { |
6390 if (findImageControl () !is null) return LRESULT.ONE; | |
6391 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6392 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6393 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6394 case OS.LVN_BEGINDRAG: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6395 case OS.LVN_BEGINRDRAG: { |
213 | 6396 if (OS.GetKeyState (OS.VK_LBUTTON) >= 0) break; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6397 dragStarted = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6398 if (hdr.code is OS.LVN_BEGINDRAG) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6399 int pos = OS.GetMessagePos (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6400 POINT pt; |
213 | 6401 OS.POINTSTOPOINT (pt, pos); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6402 OS.ScreenToClient (handle, &pt); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6403 sendDragEvent (1, pt.x, pt.y); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6404 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6405 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6406 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6407 case OS.LVN_COLUMNCLICK: { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6408 NMLISTVIEW* pnmlv = cast(NMLISTVIEW*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6409 //OS.MoveMemory(pnmlv, lParam, NMLISTVIEW.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6410 TableColumn column = columns [pnmlv.iSubItem]; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6411 if (column !is null) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6412 column.postEvent (DWT.Selection); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6413 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6414 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6415 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6416 case OS.LVN_ITEMACTIVATE: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6417 if (ignoreActivate) break; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6418 NMLISTVIEW* pnmlv = cast(NMLISTVIEW*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6419 //OS.MoveMemory(pnmlv, lParam, NMLISTVIEW.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6420 if (pnmlv.iItem !is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6421 Event event = new Event (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6422 event.item = _getItem (pnmlv.iItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6423 postEvent (DWT.DefaultSelection, event); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6424 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6425 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6426 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6427 case OS.LVN_ITEMCHANGED: { |
213 | 6428 if (fullRowSelect) { |
6429 fullRowSelect = false; | |
6430 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); | |
6431 OS.SendMessage (handle, OS.LVM_SETEXTENDEDLISTVIEWSTYLE, OS.LVS_EX_FULLROWSELECT, 0); | |
6432 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6433 if (!ignoreSelect) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6434 NMLISTVIEW* pnmlv = cast(NMLISTVIEW*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6435 //OS.MoveMemory (pnmlv, lParam, NMLISTVIEW.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6436 if ((pnmlv.uChanged & OS.LVIF_STATE) !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6437 if (pnmlv.iItem is -1) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6438 wasSelected = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6439 } else { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6440 bool oldSelected = (pnmlv.uOldState & OS.LVIS_SELECTED) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6441 bool newSelected = (pnmlv.uNewState & OS.LVIS_SELECTED) !is 0; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6442 if (oldSelected !is newSelected) wasSelected = true; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6443 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6444 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6445 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6446 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6447 auto hwndHeader = cast(HWND) OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6448 int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6449 if (count !is 0) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6450 forceResize (); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6451 RECT rect; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6452 OS.GetClientRect (handle, &rect); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6453 NMLISTVIEW* pnmlv = cast(NMLISTVIEW*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6454 //OS.MoveMemory (pnmlv, lParam, NMLISTVIEW.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6455 if (pnmlv.iItem !is -1) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6456 RECT itemRect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6457 itemRect.left = OS.LVIR_BOUNDS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6458 ignoreCustomDraw = true; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6459 OS.SendMessage (handle, OS. LVM_GETITEMRECT, pnmlv.iItem, &itemRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6460 ignoreCustomDraw = false; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6461 RECT headerRect; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6462 int index = OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, count - 1, 0); |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6463 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &headerRect); |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6464 OS.MapWindowPoints (hwndHeader, handle, cast(POINT*) &headerRect, 2); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6465 rect.left = headerRect.right; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6466 rect.top = itemRect.top; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6467 rect.bottom = itemRect.bottom; |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6468 OS.InvalidateRect (handle, &rect, true); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6469 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6470 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6471 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6472 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6473 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6474 case OS.NM_RECOGNIZEGESTURE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6475 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6476 * Feature on Pocket PC. The tree and table controls detect the tap |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6477 * and hold gesture by default. They send a GN_CONTEXTMENU message to show |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6478 * the popup menu. This default behaviour is unwanted on Pocket PC 2002 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6479 * when no menu has been set, as it still draws a red circle. The fix |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6480 * is to disable this default behaviour when no menu is set by returning |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6481 * TRUE when receiving the Pocket PC 2002 specific NM_RECOGNIZEGESTURE |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6482 * message. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6483 */ |
77 | 6484 if (OS.IsPPC) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6485 bool hasMenu = menu !is null && !menu.isDisposed (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6486 if (!hasMenu && !hooks (DWT.MenuDetect)) return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6487 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6488 break; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6489 case OS.GN_CONTEXTMENU: |
77 | 6490 if (OS.IsPPC) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6491 bool hasMenu = menu !is null && !menu.isDisposed (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6492 if (hasMenu || hooks (DWT.MenuDetect)) { |
67
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6493 NMRGINFO* nmrg = cast(NMRGINFO*)lParam; |
3f4e6a4ecc09
Table, TableItem, TableColumn
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6494 //OS.MoveMemory (nmrg, lParam, NMRGINFO.sizeof); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6495 showMenu (nmrg.x, nmrg.y); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6496 return LRESULT.ONE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6497 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6498 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6499 break; |
82 | 6500 default: |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6501 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6502 return super.wmNotifyChild (hdr, wParam, lParam); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6503 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6504 |
213 | 6505 LRESULT wmNotifyHeader (NMHDR* hdr, int /*long*/ wParam, int /*long*/ lParam) { |
6506 /* | |
6507 * Feature in Windows. On NT, the automatically created | |
6508 * header control is created as a UNICODE window, not an | |
6509 * ANSI window despite the fact that the parent is created | |
6510 * as an ANSI window. This means that it sends UNICODE | |
6511 * notification messages to the parent window on NT for | |
6512 * no good reason. The data and size in the NMHEADER and | |
6513 * HDITEM structs is identical between the platforms so no | |
6514 * different message is actually necessary. Despite this, | |
6515 * Windows sends different messages. The fix is to look | |
6516 * for both messages, despite the platform. This works | |
6517 * because only one will be sent on either platform, never | |
6518 * both. | |
6519 */ | |
6520 switch (hdr.code) { | |
6521 case OS.HDN_BEGINTRACKW: | |
6522 case OS.HDN_BEGINTRACKA: | |
6523 case OS.HDN_DIVIDERDBLCLICKW: | |
6524 case OS.HDN_DIVIDERDBLCLICKA: { | |
6525 if (columnCount is 0) return LRESULT.ONE; | |
6526 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
6527 TableColumn column = columns [phdn.iItem]; | |
6528 if (column !is null && !column.getResizable ()) { | |
6529 return LRESULT.ONE; | |
6530 } | |
6531 ignoreColumnMove = true; | |
6532 switch (hdr.code) { | |
6533 case OS.HDN_DIVIDERDBLCLICKW: | |
6534 case OS.HDN_DIVIDERDBLCLICKA: | |
6535 /* | |
6536 * Bug in Windows. When the first column of a table does not | |
6537 * have an image and the user double clicks on the divider, | |
6538 * Windows packs the column but does not take into account | |
6539 * the empty space left for the image. The fix is to measure | |
6540 * each items ourselves rather than letting Windows do it. | |
6541 */ | |
6542 bool fixPack = phdn.iItem is 0 && !firstColumnImage; | |
6543 if (column !is null && (fixPack || hooks (DWT.MeasureItem))) { | |
6544 column.pack (); | |
6545 return LRESULT.ONE; | |
6546 } | |
6547 default: | |
6548 } | |
6549 break; | |
6550 } | |
6551 case OS.NM_RELEASEDCAPTURE: { | |
6552 if (!ignoreColumnMove) { | |
6553 for (int i=0; i<columnCount; i++) { | |
6554 TableColumn column = columns [i]; | |
6555 column.updateToolTip (i); | |
6556 } | |
6557 } | |
6558 ignoreColumnMove = false; | |
6559 break; | |
6560 } | |
6561 case OS.HDN_BEGINDRAG: { | |
6562 if (ignoreColumnMove) return LRESULT.ONE; | |
6563 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); | |
6564 if ((bits & OS.LVS_EX_HEADERDRAGDROP) is 0) break; | |
6565 if (columnCount is 0) return LRESULT.ONE; | |
6566 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
6567 if (phdn.iItem !is -1) { | |
6568 TableColumn column = columns [phdn.iItem]; | |
6569 if (column !is null && !column.getMoveable ()) { | |
6570 ignoreColumnMove = true; | |
6571 return LRESULT.ONE; | |
6572 } | |
6573 } | |
6574 break; | |
6575 } | |
6576 case OS.HDN_ENDDRAG: { | |
6577 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); | |
6578 if ((bits & OS.LVS_EX_HEADERDRAGDROP) is 0) break; | |
6579 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
6580 if (cast(int)phdn.iItem !is -1 && cast(int)phdn.pitem !is 0) { | |
6581 HDITEM* pitem = cast(HDITEM*)phdn.pitem; | |
6582 if ((pitem.mask & OS.HDI_ORDER) !is 0 && pitem.iOrder !is -1) { | |
6583 if (columnCount is 0) break; | |
6584 int [] order = new int [columnCount]; | |
6585 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, order.ptr); | |
6586 int index = 0; | |
6587 while (index < order.length) { | |
6588 if (order [index] is phdn.iItem) break; | |
6589 index++; | |
6590 } | |
6591 if (index is order.length) index = 0; | |
6592 if (index is pitem.iOrder) break; | |
6593 int start = Math.min (index, pitem.iOrder); | |
6594 int end = Math.max (index, pitem.iOrder); | |
6595 ignoreColumnMove = false; | |
6596 for (int i=start; i<=end; i++) { | |
6597 TableColumn column = columns [order [i]]; | |
6598 if (!column.isDisposed ()) { | |
6599 column.postEvent (DWT.Move); | |
6600 } | |
6601 } | |
6602 } | |
6603 } | |
6604 break; | |
6605 } | |
6606 case OS.HDN_ITEMCHANGEDW: | |
6607 case OS.HDN_ITEMCHANGEDA: { | |
6608 /* | |
6609 * Bug in Windows. When a table has the LVS_EX_GRIDLINES extended | |
6610 * style and the user drags any column over the first column in the | |
6611 * table, making the size become zero, when the user drags a column | |
6612 * such that the size of the first column becomes non-zero, the grid | |
6613 * lines are not redrawn. The fix is to detect the case and force | |
6614 * a redraw of the first column. | |
6615 */ | |
6616 int width = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0); | |
6617 if (lastWidth is 0 && width > 0) { | |
6618 int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0); | |
6619 if ((bits & OS.LVS_EX_GRIDLINES) !is 0) { | |
6620 RECT rect; | |
6621 OS.GetClientRect (handle, &rect); | |
6622 rect.right = rect.left + width; | |
6623 OS.InvalidateRect (handle, &rect, true); | |
6624 } | |
6625 } | |
6626 lastWidth = width; | |
6627 if (!ignoreColumnResize) { | |
6628 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
6629 if (phdn.pitem !is null) { | |
6630 HDITEM* pitem = cast(HDITEM*)phdn.pitem; | |
6631 if ((pitem.mask & OS.HDI_WIDTH) !is 0) { | |
6632 TableColumn column = columns [phdn.iItem]; | |
6633 if (column !is null) { | |
6634 column.updateToolTip (phdn.iItem); | |
6635 column.sendEvent (DWT.Resize); | |
6636 if (isDisposed ()) return LRESULT.ZERO; | |
6637 /* | |
6638 * It is possible (but unlikely), that application | |
6639 * code could have disposed the column in the move | |
6640 * event. If this happens, process the move event | |
6641 * for those columns that have not been destroyed. | |
6642 */ | |
6643 TableColumn [] newColumns = new TableColumn [columnCount]; | |
6644 System.arraycopy (columns, 0, newColumns, 0, columnCount); | |
6645 int [] order = new int [columnCount]; | |
6646 OS.SendMessage (handle, OS.LVM_GETCOLUMNORDERARRAY, columnCount, order.ptr); | |
6647 bool moved = false; | |
6648 for (int i=0; i<columnCount; i++) { | |
6649 TableColumn nextColumn = newColumns [order [i]]; | |
6650 if (moved && !nextColumn.isDisposed ()) { | |
6651 nextColumn.updateToolTip (order [i]); | |
6652 nextColumn.sendEvent (DWT.Move); | |
6653 } | |
6654 if (nextColumn is column) moved = true; | |
6655 } | |
6656 } | |
6657 } | |
6658 } | |
6659 } | |
6660 break; | |
6661 } | |
6662 case OS.HDN_ITEMDBLCLICKW: | |
6663 case OS.HDN_ITEMDBLCLICKA: { | |
6664 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
6665 TableColumn column = columns [phdn.iItem]; | |
6666 if (column !is null) { | |
6667 column.postEvent (DWT.DefaultSelection); | |
6668 } | |
6669 break; | |
6670 } | |
6671 default: | |
6672 } | |
6673 return null; | |
6674 } | |
6675 | |
6676 LRESULT wmNotifyToolTip (NMHDR* hdr, int /*long*/ wParam, int /*long*/ lParam) { | |
6677 if (OS.IsWinCE) return null; | |
6678 switch (hdr.code) { | |
6679 case OS.NM_CUSTOMDRAW: { | |
6680 if (toolTipText_ !is null) break; | |
6681 if (isCustomToolTip ()) { | |
6682 NMTTCUSTOMDRAW* nmcd = cast(NMTTCUSTOMDRAW*)lParam; | |
6683 return wmNotifyToolTip (nmcd, lParam); | |
6684 } | |
6685 break; | |
6686 } | |
6687 case OS.TTN_GETDISPINFOA: | |
6688 case OS.TTN_GETDISPINFOW: | |
6689 case OS.TTN_SHOW: { | |
6690 LRESULT result = super.wmNotify (hdr, wParam, lParam); | |
6691 if (result !is null) return result; | |
6692 if (hdr.code !is OS.TTN_SHOW) tipRequested = true; | |
6693 int /*long*/ code = callWindowProc (handle, OS.WM_NOTIFY, wParam, lParam); | |
6694 if (hdr.code !is OS.TTN_SHOW) tipRequested = false; | |
6695 if (toolTipText_ !is null) break; | |
6696 if (isCustomToolTip ()) { | |
6697 LVHITTESTINFO pinfo; | |
6698 int pos = OS.GetMessagePos (); | |
6699 POINT pt; | |
6700 OS.POINTSTOPOINT (pt, pos); | |
6701 OS.ScreenToClient (handle, &pt); | |
6702 pinfo.pt.x = pt.x; | |
6703 pinfo.pt.y = pt.y; | |
6704 if (OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo) !is -1) { | |
6705 TableItem item = _getItem (pinfo.iItem); | |
6706 auto hDC = OS.GetDC (handle); | |
6707 HFONT oldFont, newFont = cast(HFONT)OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
6708 if (newFont !is null) oldFont = OS.SelectObject (hDC, newFont); | |
6709 auto hFont = item.fontHandle (pinfo.iSubItem); | |
6710 if (cast(int)hFont !is -1) hFont = cast(HFONT)OS.SelectObject (hDC, hFont); | |
6711 Event event = sendMeasureItemEvent (item, pinfo.iItem, pinfo.iSubItem, hDC); | |
6712 if (!isDisposed () && !item.isDisposed ()) { | |
6713 RECT itemRect; | |
6714 OS.SetRect (&itemRect, event.x, event.y, event.x + event.width, event.y + event.height); | |
6715 if (hdr.code is OS.TTN_SHOW) { | |
6716 RECT* toolRect = toolTipRect (&itemRect); | |
6717 OS.MapWindowPoints (handle, null, cast(POINT*)toolRect, 2); | |
6718 auto hwndToolTip = cast(HWND) OS.SendMessage (handle, OS.LVM_GETTOOLTIPS, 0, 0); | |
6719 int flags = OS.SWP_NOACTIVATE | OS.SWP_NOZORDER; | |
6720 int width = toolRect.right - toolRect.left, height = toolRect.bottom - toolRect.top; | |
6721 SetWindowPos (hwndToolTip, null, toolRect.left , toolRect.top, width, height, flags); | |
6722 } else { | |
6723 NMTTDISPINFO* lpnmtdi = null; | |
6724 if (hdr.code is OS.TTN_GETDISPINFOA) { | |
6725 lpnmtdi = cast(NMTTDISPINFO*)new NMTTDISPINFOA; | |
6726 OS.MoveMemory (lpnmtdi, cast(void*) lParam, NMTTDISPINFOA.sizeof); | |
6727 if (lpnmtdi.lpszText !is null) { | |
6728 (cast(char*)lpnmtdi.lpszText)[0] = 0; | |
6729 } | |
6730 } else { | |
6731 lpnmtdi = cast(NMTTDISPINFO*)new NMTTDISPINFOW; | |
6732 OS.MoveMemory (lpnmtdi, cast(void*) lParam, NMTTDISPINFOW.sizeof); | |
6733 if (lpnmtdi.lpszText !is null) { | |
6734 (cast(wchar*)lpnmtdi.lpszText)[0] = 0; | |
6735 } | |
6736 } | |
6737 RECT cellRect = item.getBounds (pinfo.iItem, pinfo.iSubItem, true, true, true, true, hDC); | |
6738 if (itemRect.right > cellRect.right) { | |
6739 //TEMPORARY CODE | |
6740 String string = " "; | |
6741 // String string = null; | |
6742 // if (pinfo.iSubItem is 0) { | |
6743 // string = item.text; | |
6744 // } else { | |
6745 // String [] strings = item.strings; | |
6746 // if (strings !is null) string = strings [pinfo.iSubItem]; | |
6747 // } | |
6748 if (string !is null) { | |
6749 Shell shell = getShell (); | |
6750 wchar [] chars = StrToTCHARs(string, true ); | |
6751 if (hdr.code is OS.TTN_GETDISPINFOA) { | |
237
e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
Frank Benoit <benoit@tionex.de>
parents:
217
diff
changeset
|
6752 CHAR [] bytes = new CHAR [chars.length * 2]; |
213 | 6753 OS.WideCharToMultiByte (getCodePage (), 0, chars.ptr, chars.length, bytes.ptr, bytes.length, null, null); |
6754 shell.setToolTipText (lpnmtdi, bytes); | |
6755 OS.MoveMemory (lParam, cast(NMTTDISPINFOA*)lpnmtdi, NMTTDISPINFOA.sizeof); | |
6756 } else { | |
6757 shell.setToolTipText (lpnmtdi, chars); | |
6758 OS.MoveMemory (lParam, cast(NMTTDISPINFOW*)lpnmtdi, NMTTDISPINFOW.sizeof); | |
6759 } | |
6760 } | |
6761 } | |
6762 } | |
6763 } | |
6764 if (hFont !is cast(HFONT)-1) hFont = OS.SelectObject (hDC, hFont); | |
6765 if (newFont !is null) OS.SelectObject (hDC, oldFont); | |
6766 OS.ReleaseDC (handle, hDC); | |
6767 } | |
6768 } | |
6769 return new LRESULT (code); | |
6770 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
6771 default: |
213 | 6772 } |
6773 return null; | |
6774 } | |
6775 | |
6776 LRESULT wmNotifyToolTip (NMTTCUSTOMDRAW* nmcd, int /*long*/ lParam) { | |
6777 if (OS.IsWinCE) return null; | |
6778 switch (nmcd.nmcd.dwDrawStage) { | |
6779 case OS.CDDS_PREPAINT: { | |
6780 if (isCustomToolTip ()) { | |
6781 //TEMPORARY CODE | |
6782 // nmcd.uDrawFlags |= OS.DT_CALCRECT; | |
6783 // OS.MoveMemory (lParam, nmcd, NMTTCUSTOMDRAW.sizeof); | |
6784 return new LRESULT (OS.CDRF_NOTIFYPOSTPAINT | OS.CDRF_NEWFONT); | |
6785 } | |
6786 break; | |
6787 } | |
6788 case OS.CDDS_POSTPAINT: { | |
6789 LVHITTESTINFO pinfo; | |
6790 int pos = OS.GetMessagePos (); | |
6791 POINT pt; | |
6792 OS.POINTSTOPOINT (pt, pos); | |
6793 OS.ScreenToClient (handle, &pt); | |
6794 pinfo.pt.x = pt.x; | |
6795 pinfo.pt.y = pt.y; | |
6796 if (OS.SendMessage (handle, OS.LVM_SUBITEMHITTEST, 0, &pinfo) !is -1) { | |
6797 TableItem item = _getItem (pinfo.iItem); | |
6798 auto hDC = OS.GetDC (handle); | |
6799 auto hFont = item.fontHandle (pinfo.iSubItem); | |
6800 if (cast(int)hFont is -1) hFont = cast(HFONT)OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
6801 auto oldFont = cast(HFONT)OS.SelectObject (hDC, hFont); | |
6802 bool drawForeground = true; | |
6803 RECT cellRect = item.getBounds (pinfo.iItem, pinfo.iSubItem, true, true, false, false, hDC); | |
6804 if (hooks (DWT.EraseItem)) { | |
6805 Event event = sendEraseItemEvent (item, nmcd, pinfo.iSubItem, &cellRect); | |
6806 if (isDisposed () || item.isDisposed ()) break; | |
6807 if (event.doit) { | |
6808 drawForeground = (event.detail & DWT.FOREGROUND) !is 0; | |
6809 } else { | |
6810 drawForeground = false; | |
6811 } | |
6812 } | |
6813 if (drawForeground) { | |
6814 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
6815 int gridWidth = getLinesVisible () ? Table.GRID_WIDTH : 0; | |
6816 RECT* insetRect = toolTipInset (&cellRect); | |
6817 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); | |
6818 GCData data = new GCData (); | |
6819 data.device = display; | |
6820 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); | |
6821 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
6822 data.font = Font.win32_new (display, hFont); | |
6823 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
6824 int x = cellRect.left; | |
6825 if (pinfo.iSubItem !is 0) x -= gridWidth; | |
6826 Image image = item.getImage (pinfo.iSubItem); | |
6827 if (image !is null) { | |
6828 Rectangle rect = image.getBounds (); | |
6829 RECT imageRect = item.getBounds (pinfo.iItem, pinfo.iSubItem, false, true, false, false, hDC); | |
6830 Point size = imageList is null ? new Point (rect.width, rect.height) : imageList.getImageSize (); | |
6831 int y = imageRect.top; | |
6832 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
6833 y = y + Math.max (0, (imageRect.bottom - imageRect.top - size.y) / 2); | |
6834 } | |
6835 gc.drawImage (image, rect.x, rect.y, rect.width, rect.height, x, y, size.x, size.y); | |
6836 x += size.x + INSET + (pinfo.iSubItem is 0 ? -2 : 4); | |
6837 } else { | |
6838 x += INSET + 2; | |
6839 } | |
6840 String string = item.getText (pinfo.iSubItem); | |
6841 if (string !is null) { | |
6842 int flags = OS.DT_NOPREFIX | OS.DT_SINGLELINE | OS.DT_VCENTER; | |
6843 TableColumn column = columns !is null ? columns [pinfo.iSubItem] : null; | |
6844 if (column !is null) { | |
6845 if ((column.style & DWT.CENTER) !is 0) flags |= OS.DT_CENTER; | |
6846 if ((column.style & DWT.RIGHT) !is 0) flags |= OS.DT_RIGHT; | |
6847 } | |
6848 TCHAR[] buffer = StrToTCHARs (getCodePage (), string, false); | |
6849 RECT textRect; | |
6850 OS.SetRect (&textRect, x, cellRect.top, cellRect.right, cellRect.bottom); | |
6851 OS.DrawText (nmcd.nmcd.hdc, buffer.ptr, buffer.length, &textRect, flags); | |
6852 } | |
6853 gc.dispose (); | |
6854 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
6855 } | |
6856 if (hooks (DWT.PaintItem)) { | |
6857 RECT itemRect = item.getBounds (pinfo.iItem, pinfo.iSubItem, true, true, false, false, hDC); | |
6858 sendPaintItemEvent (item, nmcd, pinfo.iSubItem, &itemRect); | |
6859 } | |
6860 OS.SelectObject (hDC, oldFont); | |
6861 OS.ReleaseDC (handle, hDC); | |
6862 } | |
6863 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
6864 default: |
213 | 6865 } |
6866 return null; | |
6867 } | |
6868 } |