Mercurial > projects > dwt-win
annotate dwt/widgets/Tree.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 | 9c2ceaa48046 |
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:
54
diff
changeset
|
10 * Port to the D programming language: |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
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.Tree; |
92c102dd64a3
Added all 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.events.TreeListener; |
92c102dd64a3
Added all 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.Cursor; |
92c102dd64a3
Added all 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.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
|
22 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
|
23 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
|
24 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
|
25 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
|
26 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
|
27 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
|
28 import dwt.internal.win32.OS; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
29 |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
30 import dwt.widgets.Composite; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
31 import dwt.widgets.TreeItem; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
32 import dwt.widgets.TreeColumn; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
33 import dwt.widgets.TypedListener; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
34 import dwt.widgets.Event; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
35 import dwt.widgets.Display; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
36 import dwt.widgets.Shell; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
37 import dwt.widgets.Control; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
38 import dwt.widgets.Listener; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
39 import dwt.widgets.Widget; |
213 | 40 import dwt.widgets.Table; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
41 |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
42 import dwt.dwthelper.utils; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
43 |
31
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * Instances of this class provide a selectable user interface object |
92c102dd64a3
Added all 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 * that displays a hierarchy of items and issues notification when 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
|
48 * item in the hierarchy 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
|
49 * <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
|
50 * 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
|
51 * must be of type <code>TreeItem</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
|
52 * </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
|
53 * Style <code>VIRTUAL</code> is used to create a <code>Tree</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
|
54 * <code>TreeItem</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
|
55 * 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
|
56 * trees that are very large or for which <code>TreeItem</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
|
57 * 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
|
58 * </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
|
59 * Here is an example of using a <code>Tree</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
|
60 * <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
|
61 * final Tree tree = new Tree(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
|
62 * tree.setItemCount(20); |
92c102dd64a3
Added all 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 * tree.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
|
64 * 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
|
65 * TreeItem item = (TreeItem)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
|
66 * TreeItem parentItem = item.getParentItem(); |
92c102dd64a3
Added all 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 * String text = 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
|
68 * if (parentItem 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
|
69 * text = "node " + tree.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
|
70 * } 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
|
71 * text = parentItem.getText() + " - " + parentItem.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
|
72 * } |
92c102dd64a3
Added all 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 * item.setText(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
|
74 * System.out.println(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
|
75 * item.setItemCount(10); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 * } |
92c102dd64a3
Added all 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 * }); |
92c102dd64a3
Added all 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 * </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
|
79 * </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
|
80 * Note that although this class is a subclass of <code>Composite</code>, |
213 | 81 * it does not normally make sense to add <code>Control</code> children to |
82 * it, or set a layout on it, unless implementing something like a cell | |
83 * 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
|
84 * </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
|
85 * <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
|
86 * <dt><b>Styles:</b></dt> |
213 | 87 * <dd>SINGLE, MULTI, CHECK, FULL_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
|
88 * <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
|
89 * <dd>Selection, DefaultSelection, Collapse, Expand, 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
|
90 * </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
|
91 * </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
|
92 * 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
|
93 * </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
|
94 * 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
|
95 * </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
|
96 */ |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
97 public class Tree : 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
|
98 |
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
|
99 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
|
100 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
|
101 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
|
102 alias Composite.setCursor setCursor; |
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
|
103 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
|
104 |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 TreeItem [] 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
|
106 TreeColumn [] columns; |
213 | 107 int 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
|
108 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
|
109 TreeItem 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
|
110 TreeColumn sortColumn; |
213 | 111 RECT* focusRect; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
112 HWND hwndParent, hwndHeader; |
75 | 113 HANDLE hAnchor, hInsert, hSelect; |
114 int lastID; | |
115 HANDLE hFirstIndexOf, hLastIndexOf; | |
116 int lastIndexOf, itemCount, sortDirection; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 bool dragStarted, gestureCompleted, insertAfter, shrink, 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
|
118 bool ignoreSelect, ignoreExpand, ignoreDeselect, ignoreResize; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 bool lockSelection, oldSelected, newSelected, ignoreColumnMove; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 bool linesVisible, customDraw, printClient, painted, ignoreItemHeight; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 bool ignoreCustomDraw, ignoreDrawForeground, ignoreDrawBackground, ignoreDrawFocus; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 bool ignoreDrawSelection, ignoreDrawHot, ignoreFullSelection, explorerTheme; |
75 | 123 int scrollWidth, selectionForeground; |
124 HANDLE headerToolTipHandle, itemToolTipHandle; | |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
125 static const int INSET = 3; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
126 static const int GRID_WIDTH = 1; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
127 static const int SORT_WIDTH = 10; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
128 static const int HEADER_MARGIN = 12; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
129 static const int HEADER_EXTRA = 3; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
130 static const int INCREMENT = 5; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
131 static const int EXPLORER_EXTRA = 2; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
132 static const bool EXPLORER_THEME = true; |
80 | 133 private static /+const+/ WNDPROC TreeProc; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
134 static const TCHAR[] TreeClass = OS.WC_TREEVIEW; |
80 | 135 private static /+const+/ WNDPROC HeaderProc; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
136 static const TCHAR[] HeaderClass = OS.WC_HEADER; |
80 | 137 |
138 private static bool static_this_completed = false; | |
139 private static void static_this() { | |
140 if( static_this_completed ){ | |
141 return; | |
142 } | |
143 synchronized { | |
144 if( static_this_completed ){ | |
145 return; | |
146 } | |
147 WNDCLASS lpWndClass; | |
148 OS.GetClassInfo (null, TreeClass.ptr, &lpWndClass); | |
149 TreeProc = lpWndClass.lpfnWndProc; | |
150 OS.GetClassInfo (null, HeaderClass.ptr, &lpWndClass); | |
151 HeaderProc = lpWndClass.lpfnWndProc; | |
152 static_this_completed = true; | |
153 } | |
154 } | |
155 | |
75 | 156 private static Tree sThis; |
31
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
159 * 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
|
160 * <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
|
161 * 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
|
162 * 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
|
163 * 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
|
164 * (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
|
165 * 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
|
166 * 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
|
167 * 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
|
168 * </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
|
169 * |
92c102dd64a3
Added all 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 * @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
|
171 * @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
|
172 * |
92c102dd64a3
Added all 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 * @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
|
174 * <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
|
175 * </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
|
176 * @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
|
177 * <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
|
178 * <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
|
179 * </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
|
180 * |
92c102dd64a3
Added all 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 * @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
|
182 * @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
|
183 * @see DWT#CHECK |
213 | 184 * @see DWT#FULL_SELECTION |
185 * @see DWT#VIRTUAL | |
186 * @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
|
187 * @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
|
188 * @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
|
189 */ |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
190 public this (Composite parent, int style) { |
80 | 191 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
|
192 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
|
193 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 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
|
196 /* |
213 | 197 * Feature in Windows. Even when WS_HSCROLL or |
198 * WS_VSCROLL is not specified, Windows creates | |
199 * trees and tables with scroll bars. The fix | |
200 * is to set H_SCROLL and V_SCROLL. | |
201 * | |
202 * NOTE: This code appears on all platforms so that | |
203 * 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
|
204 */ |
213 | 205 if ((style & DWT.NO_SCROLL) is 0) { |
206 style |= DWT.H_SCROLL | DWT.V_SCROLL; | |
207 } | |
208 /* | |
209 * Note: Windows only supports TVS_NOSCROLL and TVS_NOHSCROLL. | |
210 */ | |
211 if ((style & DWT.H_SCROLL) !is 0 && (style & DWT.V_SCROLL) is 0) { | |
212 style |= DWT.V_SCROLL; | |
213 } | |
31
92c102dd64a3
Added all 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 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
|
215 } |
92c102dd64a3
Added all 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 |
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
|
217 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
|
218 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
|
219 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
|
220 case 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
|
221 if ((state & DRAG_DETECT) !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
|
222 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
|
223 bits &= ~OS.TVS_DISABLEDRAGDROP; |
92c102dd64a3
Added all 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 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
|
225 } |
92c102dd64a3
Added all 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 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
|
227 } |
92c102dd64a3
Added all 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 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
|
229 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
|
230 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
|
231 customDraw = 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
|
232 style |= DWT.DOUBLE_BUFFERED; |
213 | 233 if (isCustomToolTip ()) createItemToolTips (); |
31
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_SETSCROLLTIME, 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
|
235 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
213 | 236 if (eventType is DWT.MeasureItem) { |
237 if (explorerTheme) { | |
238 int bits1 = OS.SendMessage (handle, OS.TVM_GETEXTENDEDSTYLE, 0, 0); | |
239 bits1 &= ~OS.TVS_EX_AUTOHSCROLL; | |
240 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, 0, bits1); | |
241 } | |
242 bits |= OS.TVS_NOHSCROLL; | |
243 } | |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
246 * TVS_FULLROWSELECT, the background color 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
|
247 * entire row is filled when an item 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
|
248 * drawing on top of any custom drawing. 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
|
249 * is to clear TVS_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
|
250 */ |
92c102dd64a3
Added all 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 if ((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
|
252 if (eventType !is 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
|
253 if (!explorerTheme) bits &= ~OS.TVS_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
|
254 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (bits !is 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
|
257 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
|
258 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
|
259 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When TVS_NOHSCROLL is set after 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
|
261 * have been inserted into the tree, Windows shows 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
|
262 * scroll bar. The fix is to check for this case 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
|
263 * explicitly hide the 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
|
264 */ |
92c102dd64a3
Added all 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 int count = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
266 if (count !is 0 && (bits & OS.TVS_NOHSCROLL) !is 0) { |
117 | 267 static if (!OS.IsWinCE) OS.ShowScrollBar (handle, OS.SB_HORZ, 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
|
268 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
271 } |
82 | 272 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
|
273 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
274 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
275 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
276 TreeItem _getItem (HANDLE hItem) { |
75 | 277 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
278 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
279 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 280 if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem) !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
|
281 return _getItem (tvItem.hItem, tvItem.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
|
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 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
|
284 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
286 TreeItem _getItem (HANDLE hItem, int id) { |
31
92c102dd64a3
Added all 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 if ((style & DWT.VIRTUAL) is 0) return items [id]; |
75 | 288 return id !is -1 ? items [id] : new TreeItem (this, DWT.NONE, cast(HANDLE)-1, cast(HANDLE)-1, hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
291 void _setBackgroundPixel (int newPixel) { |
31
92c102dd64a3
Added all 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 int oldPixel = OS.SendMessage (handle, OS.TVM_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
|
293 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
|
294 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When TVM_SETBKCOLOR is used 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
|
296 * than once to set the background color of a tree, |
92c102dd64a3
Added all 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 * the background color of the lines and the plus/minus |
92c102dd64a3
Added all 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 * does not change to the new color. The fix is to 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
|
299 * the background color to the default before setting |
92c102dd64a3
Added all 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 * the new 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
|
301 */ |
92c102dd64a3
Added all 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 if (oldPixel !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
|
303 OS.SendMessage (handle, OS.TVM_SETBKCOLOR, 0, -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
|
304 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Set the background 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
|
307 OS.SendMessage (handle, OS.TVM_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
|
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 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
310 * Feature in Windows. When TVM_SETBKCOLOR is 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
|
311 * set the background color of a tree, the plus/minus |
92c102dd64a3
Added all 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 * animation draws badly. The fix is to clear the 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
|
313 */ |
92c102dd64a3
Added all 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 (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
|
315 int bits2 = OS.SendMessage (handle, OS.TVM_GETEXTENDEDSTYLE, 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
|
316 if (newPixel is -1 && 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
|
317 bits2 |= OS.TVS_EX_FADEINOUTEXPANDOS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
318 } 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
|
319 bits2 &= ~OS.TVS_EX_FADEINOUTEXPANDOS; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
320 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
321 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, 0, bits2); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
322 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
323 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
324 /* 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
|
325 if ((style & DWT.CHECK) !is 0) setCheckboxImageList (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
326 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
327 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
328 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 * 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
|
331 * 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
|
332 * 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
|
333 * 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
|
334 * <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
|
335 * 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
|
336 * 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
|
337 * 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
|
338 * <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
|
339 * 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
|
340 * </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
|
341 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
342 * @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
|
343 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
344 * @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
|
345 * <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
|
346 * </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
|
347 * @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
|
348 * <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
|
349 * <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
|
350 * </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
|
351 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 * @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
|
353 * @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
|
354 * @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
|
355 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 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
|
357 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
|
358 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
|
359 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
|
360 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
|
361 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
|
362 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
364 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 * 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
|
366 * be notified when an item in the receiver is expanded or collapsed |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 * by sending it one of the messages defined in the <code>TreeListener</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
|
368 * 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
|
369 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 * @param listener the listener which should 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
|
371 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 * @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
|
373 * <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
|
374 * </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
|
375 * @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
|
376 * <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
|
377 * <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
|
378 * </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
|
379 * |
92c102dd64a3
Added all 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 * @see TreeListener |
92c102dd64a3
Added all 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 * @see #removeTreeListener |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 public void addTreeListener(TreeListener 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
|
384 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
|
385 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
|
386 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
|
387 addListener (DWT.Expand, 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
|
388 addListener (DWT.Collapse, 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
|
389 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
391 override HWND borderHandle () { |
75 | 392 return hwndParent !is null ? hwndParent : handle; |
393 } | |
394 | |
395 LRESULT CDDS_ITEMPOSTPAINT (NMTVCUSTOMDRAW* nmcd, int wParam, int lParam) { | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
396 if (ignoreCustomDraw) return null; |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
397 if (nmcd.nmcd.rc.left is nmcd.nmcd.rc.right) return new LRESULT (OS.CDRF_DODEFAULT); |
75 | 398 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
|
399 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
|
400 TreeItem item = getItem (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
|
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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When a new tree 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
|
404 * using TVM_INSERTITEM and the tree is 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
|
405 * a NM_CUSTOMDRAW is sent before TVM_INSERTITEM 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
|
406 * and before the item is added to the items array. 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
|
407 * fix is to check for 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
|
408 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
409 * NOTE: This only happens on XP with the version 6.00 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
|
410 * 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
|
411 */ |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
412 if (item is null) 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
|
413 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. Under certain circumstances, 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
|
416 * sends CDDS_ITEMPOSTPAINT for an empty rectangle. This 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
|
417 * not a problem providing that graphics do not occur outside |
92c102dd64a3
Added all 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 * the rectangle. The fix is to test for the rectangle 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
|
419 * draw 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
|
420 * |
92c102dd64a3
Added all 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 * NOTE: This seems to happen when both 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
|
422 * and LPSTR_TEXTCALLBACK are used at the same time 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
|
423 * TVM_SETITEM. |
92c102dd64a3
Added all 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 */ |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
425 if (nmcd.nmcd.rc.left >= nmcd.nmcd.rc.right || nmcd.nmcd.rc.top >= nmcd.nmcd.rc.bottom) return null; |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
426 if (!OS.IsWindowVisible (handle)) 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
|
427 if ((style & DWT.FULL_SELECTION) !is 0 || findImageControl () !is null || ignoreDrawSelection || 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
|
428 OS.SetBkMode (hDC, OS.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
|
429 } |
92c102dd64a3
Added all 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 bool selected = isItemSelected (nmcd); |
75 | 431 bool hot = explorerTheme && (nmcd.nmcd.uItemState & OS.CDIS_HOT) !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
|
432 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
|
433 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
|
434 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
|
435 if ((bits & OS.TVS_TRACKSELECT) !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
|
436 if ((style & DWT.FULL_SELECTION) !is 0 && (selected || 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
|
437 OS.SetTextColor (hDC, OS.GetSysColor (OS.COLOR_WINDOWTEXT)); |
92c102dd64a3
Added all 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 } 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
|
439 OS.SetTextColor (hDC, 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
|
440 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
441 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
443 } |
92c102dd64a3
Added all 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 int [] order = null; |
75 | 445 RECT clientRect; |
446 OS.GetClientRect (scrolledHandle (), &clientRect); | |
447 if (hwndHeader !is null) { | |
448 OS.MapWindowPoints (hwndParent, handle, cast(POINT*) &clientRect, 2); | |
213 | 449 if (columnCount !is 0) { |
450 order = new int [columnCount]; | |
451 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, columnCount, cast(int) 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
|
452 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
453 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
454 int sortIndex = -1, clrSortBk = -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
|
455 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
|
456 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
|
457 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
|
458 sortIndex = 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
|
459 clrSortBk = 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
|
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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
462 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
463 int x = 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
|
464 Point size = null; |
213 | 465 for (int i=0; i<Math.max (1, columnCount); i++) { |
75 | 466 int index = order is null ? i : order [i], width = nmcd.nmcd.rc.right - nmcd.nmcd.rc.left; |
213 | 467 if (columnCount > 0 && hwndHeader !is null) { |
75 | 468 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
|
469 hdItem.mask = OS.HDI_WIDTH; |
75 | 470 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, 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
|
471 width = hdItem.cxy; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (i 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
|
474 if ((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
|
475 bool clear = !explorerTheme && !ignoreDrawSelection && 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
|
476 if (clear || (selected && !ignoreDrawSelection) || (hot && !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
|
477 bool draw = true; |
75 | 478 RECT pClipRect; |
479 OS.SetRect (&pClipRect, width, 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
|
480 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
|
481 if (hooks (DWT.EraseItem)) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
482 RECT* itemRect = item.getBounds (index, true, true, false, false, 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
|
483 itemRect.left -= EXPLORER_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
|
484 itemRect.right += EXPLORER_EXTRA + 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
|
485 pClipRect.left = 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
|
486 pClipRect.right = itemRect.right; |
213 | 487 if (columnCount > 0 && hwndHeader !is null) { |
75 | 488 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
|
489 hdItem.mask = OS.HDI_WIDTH; |
75 | 490 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); |
491 pClipRect.right = Math.min (pClipRect.right, nmcd.nmcd.rc.left + hdItem.cxy); | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
493 } |
75 | 494 RECT pRect; |
495 OS.SetRect (&pRect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
213 | 496 if (columnCount > 0 && 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
|
497 int totalWidth = 0; |
75 | 498 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
|
499 hdItem.mask = OS.HDI_WIDTH; |
213 | 500 for (int j=0; j<columnCount; j++) { |
75 | 501 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, j, &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
|
502 totalWidth += hdItem.cxy; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
503 } |
92c102dd64a3
Added all 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 if (totalWidth > clientRect.right - clientRect.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
|
505 pRect.left = 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
|
506 pRect.right = totalWidth; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
507 } 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
|
508 pRect.left = clientRect.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
|
509 pRect.right = clientRect.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
|
510 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
511 } |
92c102dd64a3
Added all 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 draw = false; |
75 | 513 auto hTheme = OS.OpenThemeData (handle, cast(TCHAR*) Display.TREEVIEW); |
31
92c102dd64a3
Added all 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 int iStateId = selected ? OS.TREIS_SELECTED : OS.TREIS_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
|
515 if (OS.GetFocus () !is handle && selected && !hot) iStateId = OS.TREIS_SELECTEDNOTFOCUS; |
75 | 516 OS.DrawThemeBackground (hTheme, hDC, OS.TVP_TREEITEM, iStateId, &pRect, &pClipRect); |
31
92c102dd64a3
Added all 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 OS.CloseThemeData (hTheme); |
92c102dd64a3
Added all 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 } |
75 | 519 if (draw) fillBackground (hDC, OS.GetBkColor (hDC), &pClipRect); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
520 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
523 if (x + width > clientRect.left) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
524 RECT* rect = new RECT(), backgroundRect = null; |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
525 bool drawItem = true, drawText = true, drawImage = true, drawBackground_ = 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
|
526 if (i 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
|
527 drawItem = drawImage = drawText = 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
|
528 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
|
529 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
|
530 if (OS.IsWindowEnabled (handle) && !hooks (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
|
531 Image 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
|
532 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
|
533 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
|
534 } 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
|
535 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
|
536 if (images !is null) image = images [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
|
537 } |
92c102dd64a3
Added all 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 (image !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
|
539 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
|
540 if (size is null) size = getImageSize (); |
92c102dd64a3
Added all 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 (!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
|
542 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
|
543 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
|
544 GC gc = GC.win32_new (hDC, data); |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
545 RECT* iconRect = item.getBounds (index, false, true, false, false, 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
|
546 gc.setClipping (iconRect.left, iconRect.top, iconRect.right - iconRect.left, iconRect.bottom - iconRect.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
|
547 gc.drawImage (image, 0, 0, bounds.width, bounds.height, iconRect.left, iconRect.top, size.x, size.y); |
75 | 548 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
|
549 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
|
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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
552 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
553 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
554 drawItem = drawText = drawBackground_ = 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
|
555 rect = item.getBounds (index, true, false, false, false, true, 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
|
556 if (linesVisible) { |
92c102dd64a3
Added all 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 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
|
558 rect.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
|
559 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
560 } |
92c102dd64a3
Added all 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 if (selected && !ignoreDrawSelection && !ignoreDrawBackground) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
563 if (!explorerTheme) fillBackground (hDC, OS.GetBkColor (hDC), rect); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
564 drawBackground_ = 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
|
565 } |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
566 backgroundRect = 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
|
567 if (hooks (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
|
568 drawItem = drawText = drawImage = 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
|
569 rect = item.getBounds (index, true, true, false, false, true, 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
|
570 if ((style & DWT.FULL_SELECTION) !is 0) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
571 backgroundRect = 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
|
572 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
573 backgroundRect = item.getBounds (index, true, false, false, false, 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
|
574 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
577 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
|
578 ignoreDrawForeground = ignoreDrawBackground = ignoreDrawSelection = ignoreDrawFocus = ignoreDrawHot = false; |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
579 OS.SetRect (rect, x, nmcd.nmcd.rc.top, x + width, nmcd.nmcd.rc.bottom); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
580 backgroundRect = 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
|
581 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
582 int clrText = -1, clrTextBk = -1; |
213 | 583 auto hFont = item.fontHandle (index); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
584 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
|
585 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
|
586 bool drawForeground = 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
|
587 if (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
|
588 if (i !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
|
589 OS.SetTextColor (hDC, 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
|
590 OS.SetBkColor (hDC, getBackgroundPixel ()); |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
591 drawForeground = drawBackground_ = 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
593 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
594 drawForeground = drawBackground_ = 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
|
595 } |
92c102dd64a3
Added all 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 if (drawForeground) { |
92c102dd64a3
Added all 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 clrText = item.cellForeground !is null ? item.cellForeground [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
|
598 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
|
599 } |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
600 if (drawBackground_) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
601 clrTextBk = item.cellBackground !is null ? item.cellBackground [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
|
602 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
|
603 if (clrTextBk is -1 && index is sortIndex) clrTextBk = clrSortBk; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
604 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
605 } 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
|
606 if (clrTextBk is -1 && index is sortIndex) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
607 drawBackground_ = 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
|
608 clrTextBk = clrSortBk; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
610 } |
92c102dd64a3
Added all 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 if (explorerTheme) { |
75 | 612 if (selected || (nmcd.nmcd.uItemState & OS.CDIS_HOT) !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
|
613 if ((style & DWT.FULL_SELECTION) !is 0) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
614 drawBackground_ = 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
|
615 } 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
|
616 if (i is 0) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
617 drawBackground_ = 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
|
618 if (!hooks (DWT.EraseItem)) drawText = 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
|
619 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (drawItem) { |
92c102dd64a3
Added all 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 if (i !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
|
625 if (hooks (DWT.MeasureItem)) { |
213 | 626 sendMeasureItemEvent (item, index, 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
|
627 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
|
628 } |
92c102dd64a3
Added all 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 (hooks (DWT.EraseItem)) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
630 RECT* cellRect = item.getBounds (index, true, 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
|
631 int nSavedDC = OS.SaveDC (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
|
632 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
|
633 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
|
634 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
|
635 data.background = 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
|
636 if (!selected || (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
|
637 if (clrText !is -1) data.foreground = 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
|
638 if (clrTextBk !is -1) data.background = 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
|
639 } |
213 | 640 data.font = item.getFont (index); |
31
92c102dd64a3
Added all 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 data.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
|
642 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
|
643 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
|
644 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
|
645 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
|
646 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
|
647 event.detail |= DWT.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
|
648 if (clrTextBk !is -1) 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
|
649 if ((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
|
650 if (hot) 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
|
651 if (selected) 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
|
652 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
|
653 //if ((nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
75 | 654 if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0) 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
|
655 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
|
656 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
|
657 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
|
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 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
|
663 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
|
664 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
|
665 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
|
666 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
|
667 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
|
668 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
|
669 int newTextClr = data.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
|
670 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
|
671 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
|
672 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
|
673 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
|
674 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
|
675 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
|
676 if ((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
|
677 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
|
678 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
|
679 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
|
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 } 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
|
682 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
|
683 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
684 if (selected && ignoreDrawSelection) 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
|
685 if ((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
|
686 if (ignoreDrawSelection) ignoreFullSelection = 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
|
687 if (!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
|
688 if (!selected && !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
|
689 selectionForeground = 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
|
690 } 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
|
691 if (!explorerTheme) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
692 drawBackground_ = 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
|
693 ignoreDrawBackground = false; |
213 | 694 if ((handle is OS.GetFocus () || display.getHighContrast ()) && OS.IsWindowEnabled (handle)) { |
31
92c102dd64a3
Added all 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 clrTextBk = 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
|
696 } 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
|
697 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
|
698 } |
213 | 699 if (!ignoreFullSelection && index is columnCount - 1) { |
75 | 700 RECT* selectionRect = new RECT (); |
701 OS.SetRect (selectionRect, backgroundRect.left, backgroundRect.top, nmcd.nmcd.rc.right, backgroundRect.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
|
702 backgroundRect = selectionRect; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
703 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
704 } else { |
75 | 705 RECT pRect; |
706 OS.SetRect (&pRect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
213 | 707 if (columnCount > 0 && 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
|
708 int totalWidth = 0; |
75 | 709 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
|
710 hdItem.mask = OS.HDI_WIDTH; |
213 | 711 for (int j=0; j<columnCount; j++) { |
75 | 712 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, j, &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
|
713 totalWidth += hdItem.cxy; |
92c102dd64a3
Added all 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 if (totalWidth > clientRect.right - clientRect.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
|
716 pRect.left = 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
|
717 pRect.right = totalWidth; |
92c102dd64a3
Added all 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 } 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
|
719 pRect.left = clientRect.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
|
720 pRect.right = clientRect.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
|
721 } |
213 | 722 if (index is columnCount - 1) { |
75 | 723 RECT* selectionRect = new 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
|
724 OS.SetRect (selectionRect, backgroundRect.left, backgroundRect.top, pRect.right, backgroundRect.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
|
725 backgroundRect = selectionRect; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
75 | 728 auto hTheme = OS.OpenThemeData (handle, cast(TCHAR*) Display.TREEVIEW); |
31
92c102dd64a3
Added all 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 int iStateId = selected ? OS.TREIS_SELECTED : OS.TREIS_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
|
730 if (OS.GetFocus () !is handle && selected && !hot) iStateId = OS.TREIS_SELECTEDNOTFOCUS; |
75 | 731 OS.DrawThemeBackground (hTheme, hDC, OS.TVP_TREEITEM, iStateId, &pRect, 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
|
732 OS.CloseThemeData (hTheme); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
736 if (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
|
737 selectionForeground = newTextClr; |
92c102dd64a3
Added all 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 (!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
|
739 if (clrTextBk is -1 && 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
|
740 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
|
741 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
|
742 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
|
743 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 (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
|
750 } |
92c102dd64a3
Added all 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 if (!ignoreDrawBackground) { |
92c102dd64a3
Added all 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 if (clrTextBk !is -1) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
753 if (drawBackground_) 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
|
754 } 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
|
755 Control control = findImageControl (); |
92c102dd64a3
Added all 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 (control !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
|
757 if (i 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
|
758 int right = Math.min (rect.right, width); |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
759 OS.SetRect (rect, rect.left, rect.top, right, rect.bottom); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
760 if (drawBackground_) fillImageBackground (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
|
761 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
762 if (drawBackground_) fillImageBackground (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
|
763 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
764 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
765 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
766 } |
92c102dd64a3
Added all 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 rect.left += INSET - 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
|
768 if (drawImage) { |
92c102dd64a3
Added all 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 Image 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
|
770 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
|
771 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
|
772 } 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
|
773 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
|
774 if (images !is null) image = images [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
|
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 int inset = i !is 0 ? INSET : 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
|
777 int offset = i !is 0 ? INSET : 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
|
778 if (image !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
|
779 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
|
780 if (size is null) size = getImageSize (); |
92c102dd64a3
Added all 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 if (!ignoreDrawForeground) { |
213 | 782 //int y1 = rect.top + (index is 0 ? (getItemHeight () - size.y) / 2 : 0); |
783 int y1 = rect.top; | |
784 int x1 = Math.max (rect.left, rect.left - inset + 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
|
785 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
|
786 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
|
787 GC gc = GC.win32_new (hDC, data); |
213 | 788 gc.setClipping (x1, rect.top, rect.right - x1, rect.bottom - rect.top); |
789 gc.drawImage (image, 0, 0, bounds.width, bounds.height, x1, y1, size.x, size.y); | |
790 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
|
791 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
|
792 } |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
793 OS.SetRect (rect, rect.left + size.x + offset, rect.top, rect.right - inset, 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
|
794 } 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
|
795 if (i 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
|
796 if (OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_NORMAL, 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
|
797 if (size is null) size = getImageSize (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
798 rect.left = Math.min (rect.left + size.x + offset, 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
|
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 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
801 OS.SetRect (rect, rect.left + offset, rect.top, rect.right - inset, 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
|
802 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 (drawText) { |
92c102dd64a3
Added all 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 * Bug in Windows. When DrawText() is used with DT_VCENTER |
92c102dd64a3
Added all 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 * and DT_ENDELLIPSIS, the ellipsis can draw 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
|
809 * rectangle when the rectangle is empty. The fix is 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
|
810 * all text drawing for empty rectangles. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (rect.left < rect.right) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
813 String string = 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
|
814 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
|
815 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
|
816 } else { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
817 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
|
818 if (strings !is null) string = strings [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
|
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 (string !is null) { |
213 | 821 if (hFont !is cast(HFONT)-1) hFont = cast(HFONT)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
|
822 if (clrText !is -1) clrText = OS.SetTextColor (hDC, 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
|
823 if (clrTextBk !is -1) clrTextBk = OS.SetBkColor (hDC, 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
|
824 int flags = OS.DT_NOPREFIX | OS.DT_SINGLELINE | OS.DT_VCENTER; |
92c102dd64a3
Added all 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 if (i !is 0) flags |= OS.DT_ENDELLIPSIS; |
92c102dd64a3
Added all 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 TreeColumn column = columns !is null ? columns [index] : 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
|
827 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
|
828 if ((column.style & DWT.CENTER) !is 0) flags |= OS.DT_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
|
829 if ((column.style & DWT.RIGHT) !is 0) flags |= OS.DT_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
|
830 } |
75 | 831 TCHAR[] buffer = StrToTCHARs (getCodePage (), string, false); |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
832 if (!ignoreDrawForeground) OS.DrawText (hDC, buffer.ptr, buffer.length, rect, flags); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
833 OS.DrawText (hDC, buffer.ptr, buffer.length, rect, flags | OS.DT_CALCRECT); |
213 | 834 if (hFont !is cast(HFONT)-1) hFont = cast(HFONT)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
|
835 if (clrText !is -1) clrText = OS.SetTextColor (hDC, 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
|
836 if (clrTextBk !is -1) clrTextBk = OS.SetBkColor (hDC, 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
|
837 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
842 if (hooks (DWT.PaintItem)) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
843 RECT* itemRect = item.getBounds (index, true, true, false, 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
|
844 int nSavedDC = OS.SaveDC (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
|
845 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
|
846 data.device = display; |
213 | 847 data.font = item.getFont (index); |
31
92c102dd64a3
Added all 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 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
|
849 data.background = 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
|
850 if (selected && (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
|
851 if (selectionForeground !is -1) 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
|
852 } 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
|
853 if (clrText !is -1) data.foreground = 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
|
854 if (clrTextBk !is -1) data.background = 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
|
855 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
856 data.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
|
857 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
|
858 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
|
859 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
|
860 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
|
861 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
|
862 event.detail |= DWT.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
|
863 if (clrTextBk !is -1) 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
|
864 if (hot) 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
|
865 if (selected && (i is 0 /*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
|
866 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
|
867 } |
92c102dd64a3
Added all 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 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
|
869 //if ((nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
75 | 870 if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0) 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
|
871 if (i is 0 /*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
|
872 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
|
873 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
|
874 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
|
875 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
879 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
|
880 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
|
881 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
|
882 event.height = itemRect.bottom - itemRect.top; |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
883 RECT* cellRect = item.getBounds (index, true, 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
|
884 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
|
885 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
|
886 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
|
887 sendEvent (DWT.PaintItem, event); |
213 | 888 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
|
889 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
|
890 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
|
891 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
|
892 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
|
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 } |
92c102dd64a3
Added all 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 x += 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
|
896 if (x > clientRect.right) 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
|
897 } |
92c102dd64a3
Added all 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 if (linesVisible) { |
92c102dd64a3
Added all 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 if ((style & DWT.FULL_SELECTION) !is 0) { |
213 | 900 if (columnCount !is 0) { |
901 HDITEM hdItem; | |
902 hdItem.mask = OS.HDI_WIDTH; | |
903 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, 0, &hdItem); | |
904 RECT rect; | |
905 OS.SetRect (&rect, nmcd.nmcd.rc.left + hdItem.cxy, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
906 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_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
|
907 } |
92c102dd64a3
Added all 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 } |
75 | 909 RECT rect; |
910 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
911 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_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
|
912 } |
213 | 913 if (!ignoreDrawFocus && focusRect !is null) { |
914 OS.DrawFocusRect (hDC, focusRect); | |
915 focusRect = null; | |
916 } else { | |
917 if (!explorerTheme) { | |
918 if (handle is OS.GetFocus ()) { | |
919 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); | |
920 if ((uiState & OS.UISF_HIDEFOCUS) is 0) { | |
921 auto hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); | |
922 if (hItem is item.handle) { | |
923 if (!ignoreDrawFocus && findImageControl () !is null) { | |
924 if ((style & DWT.FULL_SELECTION) !is 0) { | |
925 RECT focusRect; | |
926 OS.SetRect (&focusRect, 0, nmcd.nmcd.rc.top, clientRect.right + 1, nmcd.nmcd.rc.bottom); | |
927 OS.DrawFocusRect (hDC, &focusRect); | |
928 } else { | |
929 int index = OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, 0, 0); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
930 RECT* focusRect = item.getBounds (index, true, false, false, false, false, hDC); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
931 RECT* clipRect = item.getBounds (index, true, false, false, false, true, hDC); |
213 | 932 OS.IntersectClipRect (hDC, clipRect.left, clipRect.top, clipRect.right, clipRect.bottom); |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
933 OS.DrawFocusRect (hDC, focusRect); |
213 | 934 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
|
935 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
939 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
942 return new LRESULT (OS.CDRF_DODEFAULT); |
75 | 943 } |
944 | |
945 LRESULT CDDS_ITEMPREPAINT (NMTVCUSTOMDRAW* 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
|
946 /* |
92c102dd64a3
Added all 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 * Even when custom draw is being ignored, the font needs |
92c102dd64a3
Added all 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 * to be selected into the HDC so that the item bounds 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
|
949 * measured correctly. |
92c102dd64a3
Added all 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 TreeItem item = getItem (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
|
952 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When a new tree 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
|
954 * using TVM_INSERTITEM and the tree is 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
|
955 * a NM_CUSTOMDRAW is sent before TVM_INSERTITEM 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
|
956 * and before the item is added to the items array. 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
|
957 * fix is to check for 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
|
958 * |
92c102dd64a3
Added all 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 * NOTE: This only happens on XP with the version 6.00 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
|
960 * 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
|
961 */ |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
962 if (item is null) return null; |
75 | 963 auto hDC = nmcd.nmcd.hdc; |
964 int index = hwndHeader !is null ? OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, 0, 0) : 0; | |
213 | 965 auto hFont = item.fontHandle (index); |
75 | 966 if (hFont !is cast(HFONT)-1) OS.SelectObject (hDC, hFont); |
967 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:
82
diff
changeset
|
968 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
|
969 } |
75 | 970 RECT* clipRect = null; |
213 | 971 if (columnCount !is 0) { |
972 bool clip = !printClient; | |
973 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
974 clip = true; | |
975 } | |
976 if (clip) { | |
977 clipRect = new RECT (); | |
978 HDITEM hdItem; | |
979 hdItem.mask = OS.HDI_WIDTH; | |
980 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); | |
981 OS.SetRect (clipRect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, 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
|
982 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
983 } |
92c102dd64a3
Added all 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 int clrText = -1, 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
|
985 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
|
986 clrText = item.cellForeground !is null ? item.cellForeground [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
|
987 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
|
988 clrTextBk = item.cellBackground !is null ? item.cellBackground [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
|
989 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
|
990 } |
92c102dd64a3
Added all 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 int clrSortBk = -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
|
992 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
|
993 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
|
994 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
|
995 if (indexOf (sortColumn) 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
|
996 clrSortBk = 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
|
997 if (clrTextBk is -1) clrTextBk = clrSortBk; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 bool selected = isItemSelected (nmcd); |
75 | 1003 bool hot = explorerTheme && (nmcd.nmcd.uItemState & OS.CDIS_HOT) !is 0; |
213 | 1004 bool focused = explorerTheme && (nmcd.nmcd.uItemState & OS.CDIS_FOCUS) !is 0; |
75 | 1005 if (OS.IsWindowVisible (handle) && nmcd.nmcd.rc.left < nmcd.nmcd.rc.right && nmcd.nmcd.rc.top < nmcd.nmcd.rc.bottom) { |
1006 if (hFont !is cast(HFONT)-1) 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
|
1007 if (linesVisible) { |
75 | 1008 RECT rect; |
1009 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
1010 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_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
|
1011 } |
92c102dd64a3
Added all 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 //TODO - BUG - measure and erase sent when first column is clipped |
213 | 1013 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
|
1014 if (hooks (DWT.MeasureItem)) { |
213 | 1015 measureEvent = sendMeasureItemEvent (item, index, hDC); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1016 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
|
1017 } |
92c102dd64a3
Added all 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 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
|
1019 ignoreDrawForeground = ignoreDrawBackground = ignoreDrawSelection = ignoreDrawFocus = ignoreDrawHot = ignoreFullSelection = 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
|
1020 if (hooks (DWT.EraseItem)) { |
75 | 1021 RECT rect; |
1022 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1023 RECT* cellRect = item.getBounds (index, true, 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
|
1024 if (clrSortBk !is -1) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1025 drawBackground (hDC, cellRect, clrSortBk); |
213 | 1026 } else { |
1027 if (OS.IsWindowEnabled (handle) || findImageControl () !is null) { | |
1028 drawBackground (hDC, &rect); | |
1029 } else { | |
1030 fillBackground (hDC, OS.GetBkColor (hDC), &rect); | |
1031 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 int nSavedDC = OS.SaveDC (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
|
1034 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
|
1035 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
|
1036 if (selected && 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
|
1037 data.foreground = OS.GetSysColor (OS.COLOR_WINDOWTEXT); |
92c102dd64a3
Added all 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 } 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
|
1039 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
|
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 data.background = 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
|
1042 if (!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
|
1043 if (clrText !is -1) data.foreground = 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
|
1044 if (clrTextBk !is -1) data.background = 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
|
1045 } |
92c102dd64a3
Added all 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 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
213 | 1047 data.font = item.getFont (index); |
31
92c102dd64a3
Added all 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 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
|
1049 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
|
1050 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
|
1051 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
|
1052 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
|
1053 event.detail |= DWT.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
|
1054 if (clrTextBk !is -1) 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
|
1055 if (hot) 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
|
1056 if (selected) 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
|
1057 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
|
1058 //if ((nmcd.uItemState & OS.CDIS_FOCUS) !is 0) { |
75 | 1059 if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0) 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
|
1060 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
|
1061 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
213 | 1062 if ((uiState & OS.UISF_HIDEFOCUS) is 0) { |
1063 focused = true; | |
1064 event.detail |= DWT.FOCUSED; | |
1065 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
1070 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
|
1071 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
|
1072 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
|
1073 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
|
1074 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
|
1075 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
|
1076 int newTextClr = data.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
|
1077 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
|
1078 OS.RestoreDC (hDC, nSavedDC); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1079 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
|
1080 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
|
1081 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
|
1082 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
|
1083 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
|
1084 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
|
1085 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
|
1086 } 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
|
1087 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
|
1088 } |
92c102dd64a3
Added all 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 if (selected && ignoreDrawSelection) 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
|
1090 if (!ignoreDrawBackground && 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
|
1091 bool draw = !selected && !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
|
1092 if (!explorerTheme && selected) draw = !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
|
1093 if (draw) { |
213 | 1094 if (columnCount 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
|
1095 if ((style & DWT.FULL_SELECTION) !is 0) { |
75 | 1096 fillBackground (hDC, clrTextBk, &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
|
1097 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1098 RECT* textRect = item.getBounds (index, true, false, false, false, true, hDC); |
213 | 1099 if (measureEvent !is null) { |
1100 textRect.right = Math.min (cellRect.right, measureEvent.x + measureEvent.width); | |
1101 } | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1102 fillBackground (hDC, clrTextBk, textRect); |
31
92c102dd64a3
Added all 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 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1105 fillBackground (hDC, clrTextBk, cellRect); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (ignoreDrawSelection) ignoreFullSelection = 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
|
1110 if (!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
|
1111 if (!selected && !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
|
1112 selectionForeground = 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
|
1113 } |
213 | 1114 if (explorerTheme) { |
1115 if ((style & DWT.FULL_SELECTION) is 0) { | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1116 RECT* pRect = item.getBounds (index, true, true, false, false, false, hDC); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1117 RECT* pClipRect = item.getBounds (index, true, true, true, false, true, hDC); |
213 | 1118 if (measureEvent !is null) { |
1119 pRect.right = Math.min (pClipRect.right, measureEvent.x + measureEvent.width); | |
1120 } else { | |
1121 pRect.right += EXPLORER_EXTRA; | |
1122 pClipRect.right += EXPLORER_EXTRA; | |
1123 } | |
1124 pRect.left -= EXPLORER_EXTRA; | |
1125 pClipRect.left -= EXPLORER_EXTRA; | |
1126 auto hTheme = OS.OpenThemeData (handle, Display.TREEVIEW.ptr); | |
1127 int iStateId = selected ? OS.TREIS_SELECTED : OS.TREIS_HOT; | |
1128 if (OS.GetFocus () !is handle && selected && !hot) iStateId = OS.TREIS_SELECTEDNOTFOCUS; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1129 OS.DrawThemeBackground (hTheme, hDC, OS.TVP_TREEITEM, iStateId, pRect, pClipRect); |
213 | 1130 OS.CloseThemeData (hTheme); |
1131 } | |
1132 } else { | |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
1135 * TVS_FULLROWSELECT, the background color 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
|
1136 * entire row is filled when an item 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
|
1137 * drawing on top of any custom drawing. 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
|
1138 * is to emulate TVS_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
|
1139 */ |
92c102dd64a3
Added all 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 ((style & DWT.FULL_SELECTION) !is 0) { |
213 | 1141 if ((style & DWT.FULL_SELECTION) !is 0 && columnCount is 0) { |
75 | 1142 fillBackground (hDC, OS.GetBkColor (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
|
1143 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1144 fillBackground (hDC, OS.GetBkColor (hDC), cellRect); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1147 RECT* textRect = item.getBounds (index, true, false, false, false, true, hDC); |
213 | 1148 if (measureEvent !is null) { |
1149 textRect.right = Math.min (cellRect.right, measureEvent.x + measureEvent.width); | |
1150 } | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1151 fillBackground (hDC, OS.GetBkColor (hDC), textRect); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
1155 if (selected || 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
|
1156 selectionForeground = clrText = newTextClr; |
92c102dd64a3
Added all 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 ignoreDrawSelection = 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
|
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 if (explorerTheme) { |
75 | 1160 nmcd.nmcd.uItemState |= OS.CDIS_DISABLED; |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. On Vista only, when 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
|
1163 * color is unchanged and an item is asked to 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
|
1164 * disabled, it uses the disabled color. 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
|
1165 * to modify the color so that is it no longer equal. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 int newColor = 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
|
1168 if (nmcd.clrText is newColor) { |
92c102dd64a3
Added all 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 nmcd.clrText |= 0x20000000; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1170 if (nmcd.clrText is newColor) nmcd.clrText &= ~0x20000000; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1171 } 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
|
1172 nmcd.clrText = newColor; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1174 OS.MoveMemory (lParam, nmcd, NMTVCUSTOMDRAW.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
|
1175 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1176 } |
213 | 1177 if (focused && !ignoreDrawFocus && (style & DWT.FULL_SELECTION) is 0) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1178 RECT* textRect = item.getBounds (index, true, explorerTheme, false, false, true, hDC); |
213 | 1179 if (measureEvent !is null) { |
1180 textRect.right = Math.min (cellRect.right, measureEvent.x + measureEvent.width); | |
1181 } | |
1182 nmcd.nmcd.uItemState &= ~OS.CDIS_FOCUS; | |
1183 OS.MoveMemory (lParam, nmcd, NMTVCUSTOMDRAW.sizeof); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1184 focusRect = textRect; |
213 | 1185 } |
31
92c102dd64a3
Added all 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 if (explorerTheme) { |
75 | 1187 if (selected || (hot && ignoreDrawHot)) nmcd.nmcd.uItemState &= ~OS.CDIS_HOT; |
1188 OS.MoveMemory (cast(void*)lParam, nmcd, NMTVCUSTOMDRAW.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
|
1189 } |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1190 RECT* itemRect = item.getBounds (index, true, true, false, 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
|
1191 OS.SaveDC (hDC); |
75 | 1192 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
|
1193 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
|
1194 itemRect.left -= EXPLORER_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
|
1195 itemRect.right += EXPLORER_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
|
1196 } |
92c102dd64a3
Added all 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 //TODO - bug in Windows selection or DWT itemRect |
92c102dd64a3
Added all 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 /*if (selected)*/ itemRect.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
|
1199 if (linesVisible) itemRect.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
|
1200 if (clipRect !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
|
1201 OS.IntersectClipRect (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
|
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 OS.ExcludeClipRect (hDC, itemRect.left, itemRect.top, itemRect.right, itemRect.bottom); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1204 return new LRESULT (OS.CDRF_DODEFAULT | 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
|
1205 } |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
1208 * TVS_FULLROWSELECT, the background color 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
|
1209 * entire row is filled when an item 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
|
1210 * drawing on top of any custom drawing. 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
|
1211 * is to emulate TVS_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
|
1212 */ |
92c102dd64a3
Added all 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 if ((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
|
1214 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
|
1215 if ((bits & OS.TVS_FULLROWSELECT) is 0) { |
75 | 1216 RECT rect; |
1217 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
|
1218 if (selected) { |
75 | 1219 fillBackground (hDC, OS.GetBkColor (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
|
1220 } else { |
75 | 1221 if (OS.IsWindowEnabled (handle)) 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
|
1222 } |
75 | 1223 nmcd.nmcd.uItemState &= ~OS.CDIS_FOCUS; |
1224 OS.MoveMemory (cast(void*)lParam, nmcd, NMTVCUSTOMDRAW.sizeof); | |
1225 } | |
1226 } | |
1227 } | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1228 LRESULT result = null; |
75 | 1229 if (clrText is -1 && clrTextBk is -1 && hFont is cast(HFONT)-1) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1230 result = new LRESULT (OS.CDRF_DODEFAULT | 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
|
1231 } else { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1232 result = new LRESULT (OS.CDRF_NEWFONT | OS.CDRF_NOTIFYPOSTPAINT); |
75 | 1233 if (hFont !is cast(HFONT)-1) 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
|
1234 if (OS.IsWindowEnabled (handle) && 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
|
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 * Feature in Windows. Windows does not fill the entire cell |
92c102dd64a3
Added all 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 * with the background color when TVS_FULLROWSELECT is not 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
|
1238 * The fix is to fill the cell with the background 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
|
1239 */ |
92c102dd64a3
Added all 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 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
|
1241 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
|
1242 if ((bits & OS.TVS_FULLROWSELECT) is 0) { |
213 | 1243 if (columnCount !is 0 && hwndHeader !is null) { |
75 | 1244 RECT rect; |
1245 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
|
1246 hdItem.mask = OS.HDI_WIDTH; |
75 | 1247 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); |
1248 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, 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
|
1249 if (OS.COMCTL32_MAJOR < 6 || !OS.IsAppThemed ()) { |
75 | 1250 RECT itemRect; |
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:
219
diff
changeset
|
1251 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)item.handle, &itemRect, 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
|
1252 rect.left = Math.min (itemRect.left, 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
|
1253 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if ((style & DWT.FULL_SELECTION) !is 0) { |
75 | 1256 if (!selected) fillBackground (hDC, clrTextBk, &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
|
1257 } 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
|
1258 if (explorerTheme) { |
75 | 1259 if (!selected && !hot) fillBackground (hDC, clrTextBk, &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
|
1260 } else { |
75 | 1261 fillBackground (hDC, clrTextBk, &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
|
1262 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
1265 if ((style & DWT.FULL_SELECTION) !is 0) { |
75 | 1266 RECT rect; |
1267 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
1268 if (!selected) fillBackground (hDC, clrTextBk, &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
|
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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1271 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1272 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1273 if (!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
|
1274 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
|
1275 nmcd.clrTextBk = clrTextBk is -1 ? getBackgroundPixel () : 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
|
1276 OS.MoveMemory (lParam, nmcd, NMTVCUSTOMDRAW.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
|
1277 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
1281 /* |
92c102dd64a3
Added all 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 * On Vista only, when an item is asked to draw 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
|
1283 * the background of the text is not filled 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
|
1284 * background color of the tree. This is true for 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
|
1285 * regular and full selection trees. In order to draw 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
|
1286 * background image, mark the item as disabled 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
|
1287 * CDIS_DISABLED (when not selected) and set 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
|
1288 * to the regular text color to avoid drawing 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
|
1289 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1290 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
|
1291 if (findImageControl () !is null) { |
75 | 1292 if (!selected && (nmcd.nmcd.uItemState & (OS.CDIS_HOT | OS.CDIS_SELECTED)) is 0) { |
1293 nmcd.nmcd.uItemState |= OS.CDIS_DISABLED; | |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. On Vista only, when 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
|
1296 * color is unchanged and an item is asked to 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
|
1297 * disabled, it uses the disabled color. 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
|
1298 * to modify the color so it is no longer equal. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 int newColor = 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
|
1301 if (nmcd.clrText is newColor) { |
92c102dd64a3
Added all 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 nmcd.clrText |= 0x20000000; |
92c102dd64a3
Added all 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 if (nmcd.clrText is newColor) nmcd.clrText &= ~0x20000000; |
92c102dd64a3
Added all 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 } 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
|
1305 nmcd.clrText = newColor; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1307 OS.MoveMemory (lParam, nmcd, NMTVCUSTOMDRAW.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
|
1308 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
|
1309 if ((style & DWT.FULL_SELECTION) !is 0) { |
75 | 1310 RECT rect; |
213 | 1311 if (columnCount !is 0) { |
75 | 1312 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
|
1313 hdItem.mask = OS.HDI_WIDTH; |
75 | 1314 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); |
1315 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, 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
|
1316 } else { |
75 | 1317 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
|
1318 } |
75 | 1319 fillBackground (hDC, clrTextBk, &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
|
1320 } else { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1321 RECT* textRect = item.getBounds (index, true, false, true, false, true, hDC); |
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
1322 fillBackground (hDC, clrTextBk, textRect); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
1329 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree 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
|
1331 * with a gray background over the sort 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
|
1332 * to fill the background with the sort column 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
|
1333 */ |
92c102dd64a3
Added all 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 if (clrSortBk !is -1) { |
75 | 1335 RECT rect; |
1336 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
|
1337 hdItem.mask = OS.HDI_WIDTH; |
75 | 1338 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); |
1339 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, nmcd.nmcd.rc.bottom); | |
1340 fillBackground (hDC, clrSortBk, &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
|
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 } |
92c102dd64a3
Added all 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 OS.SaveDC (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
|
1344 if (clipRect !is null) { |
75 | 1345 auto hRgn = OS.CreateRectRgn (clipRect.left, clipRect.top, clipRect.right, clipRect.bottom); |
1346 POINT lpPoint; | |
1347 OS.GetWindowOrgEx (hDC, &lpPoint); | |
31
92c102dd64a3
Added all 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 OS.OffsetRgn (hRgn, -lpPoint.x, -lpPoint.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
|
1349 OS.SelectClipRgn (hDC, 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
|
1350 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
|
1351 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1352 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
|
1353 } |
92c102dd64a3
Added all 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 |
75 | 1355 LRESULT CDDS_POSTPAINT (NMTVCUSTOMDRAW* nmcd, int wParam, int lParam) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1356 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
|
1357 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
|
1358 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
|
1359 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
|
1360 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
|
1361 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
|
1362 if (index !is -1) { |
75 | 1363 int top = nmcd.nmcd.rc.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
|
1364 /* |
92c102dd64a3
Added all 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 * Bug in Windows. For some reason, during a collapse, |
92c102dd64a3
Added all 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 * when TVM_GETNEXTITEM is sent with TVGN_LASTVISIBLE |
92c102dd64a3
Added all 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 * and the collapse causes the item being collapsed |
92c102dd64a3
Added all 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 * to become the last visible item in the tree, 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
|
1369 * message takes a long time to process. In order 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
|
1370 * the slowness to happen, the children 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
|
1371 * must have children. Times of up to 11 seconds have |
92c102dd64a3
Added all 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 * been observed with 23 children, each having 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
|
1373 * child. The fix is to use the bottom partially |
92c102dd64a3
Added all 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 * visible item rather than the last possible 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
|
1375 * that could be 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
|
1376 * |
92c102dd64a3
Added all 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 * NOTE: This problem only happens on Vista 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
|
1378 * WM_NOTIFY with NM_CUSTOMDRAW and CDDS_POSTPAINT. |
92c102dd64a3
Added all 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 */ |
75 | 1380 HANDLE hItem; |
31
92c102dd64a3
Added all 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 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
|
1382 hItem = getBottomItem (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1383 } else { |
75 | 1384 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 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
|
1385 } |
75 | 1386 if (hItem !is null) { |
1387 RECT rect; | |
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:
219
diff
changeset
|
1388 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, 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
|
1389 top = rect.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
|
1390 } |
92c102dd64a3
Added all 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 } |
75 | 1392 RECT rect; |
1393 OS.SetRect (&rect, nmcd.nmcd.rc.left, top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
1394 RECT headerRect; | |
1395 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &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
|
1396 rect.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
|
1397 rect.right = headerRect.right; |
75 | 1398 fillBackground (nmcd.nmcd.hdc, getSortColumnPixel (), &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
|
1399 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (linesVisible) { |
75 | 1404 auto hDC = nmcd.nmcd.hdc; |
1405 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
|
1406 int x = 0; |
75 | 1407 RECT rect; |
1408 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
|
1409 hdItem.mask = OS.HDI_WIDTH; |
213 | 1410 for (int i=0; i<columnCount; 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
|
1411 int index = OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, i, 0); |
75 | 1412 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, index, &hdItem); |
1413 OS.SetRect (&rect, x, nmcd.nmcd.rc.top, x + hdItem.cxy, nmcd.nmcd.rc.bottom); | |
1414 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_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
|
1415 x += hdItem.cxy; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1417 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1418 int height = 0; |
75 | 1419 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
|
1420 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1421 * Bug in Windows. For some reason, during a collapse, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1422 * when TVM_GETNEXTITEM is sent with TVGN_LASTVISIBLE |
92c102dd64a3
Added all 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 * and the collapse causes the item being collapsed |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1424 * to become the last visible item in the tree, 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
|
1425 * message takes a long time to process. In order 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
|
1426 * the slowness to happen, the children 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
|
1427 * must have children. Times of up to 11 seconds have |
92c102dd64a3
Added all 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 * been observed with 23 children, each having 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
|
1429 * child. The fix is to use the bottom partially |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1430 * visible item rather than the last possible 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
|
1431 * that could be 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
|
1432 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1433 * NOTE: This problem only happens on Vista 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
|
1434 * WM_NOTIFY with NM_CUSTOMDRAW and CDDS_POSTPAINT. |
92c102dd64a3
Added all 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 */ |
75 | 1436 HANDLE hItem; |
31
92c102dd64a3
Added all 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 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
|
1438 hItem = getBottomItem (); |
92c102dd64a3
Added all 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 } else { |
75 | 1440 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 0); |
1441 } | |
1442 if (hItem !is null) { | |
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:
219
diff
changeset
|
1443 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, 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
|
1444 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
|
1445 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 (height 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
|
1448 height = OS.SendMessage (handle, OS.TVM_GETITEMHEIGHT, 0, 0); |
75 | 1449 OS.GetClientRect (handle, &rect); |
1450 OS.SetRect (&rect, rect.left, rect.top, rect.right, rect.top + height); | |
1451 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); | |
1452 } | |
1453 while (rect.bottom < 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
|
1454 int top = rect.top + height; |
75 | 1455 OS.SetRect (&rect, rect.left, top, rect.right, top + height); |
1456 OS.DrawEdge (hDC, &rect, OS.BDR_SUNKENINNER, OS.BF_BOTTOM); | |
1457 } | |
1458 } | |
1459 } | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1460 return new LRESULT (OS.CDRF_DODEFAULT); |
75 | 1461 } |
1462 | |
1463 LRESULT CDDS_PREPAINT (NMTVCUSTOMDRAW* 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
|
1464 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
|
1465 if ((OS.IsWindowEnabled (handle) && hooks (DWT.EraseItem)) || findImageControl () !is null) { |
75 | 1466 RECT rect; |
1467 OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.right, nmcd.nmcd.rc.bottom); | |
1468 drawBackground (nmcd.nmcd.hdc, &rect); | |
1469 } | |
1470 } | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1471 return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT); |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1472 } |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1473 |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1474 override int callWindowProc (HWND hwnd, int msg, int wParam, int lParam) { |
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1475 if (handle is null) return 0; |
75 | 1476 if (hwndParent !is null && hwnd is hwndParent) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1477 return OS.DefWindowProc (hwnd, msg, wParam, lParam); |
75 | 1478 } |
1479 if (hwndHeader !is null && hwnd is hwndHeader) { | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1480 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
|
1481 } |
92c102dd64a3
Added all 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 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
|
1483 case OS.WM_SETFOCUS: { |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When a tree control processes WM_SETFOCUS, |
92c102dd64a3
Added all 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 * if no item is selected, the first item in the tree 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
|
1487 * This is unexpected and might clear the previous 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
|
1488 * The fix is to detect that there is no selection and set it 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
|
1489 * the first visible item in the tree. If the item was not 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
|
1490 * only the focus is assigned. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if ((style & DWT.SINGLE) !is 0) break; |
75 | 1493 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
1494 if (hItem is null) { | |
1495 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 0); | |
1496 if (hItem !is null) { | |
1497 TVITEM tvItem; | |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; |
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:
219
diff
changeset
|
1499 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 1500 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 hSelect = hItem; |
92c102dd64a3
Added all 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 ignoreDeselect = ignoreSelect = lockSelection = 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
|
1503 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, hItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1504 ignoreDeselect = ignoreSelect = lockSelection = false; |
75 | 1505 hSelect = 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
|
1506 if ((tvItem.state & OS.TVIS_SELECTED) is 0) { |
75 | 1507 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
1512 } |
82 | 1513 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
|
1514 } |
75 | 1515 HANDLE hItem; |
31
92c102dd64a3
Added all 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 bool 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
|
1517 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
|
1518 /* 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
|
1519 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
|
1520 if (wParam is OS.VK_CONTROL || wParam is OS.VK_SHIFT) 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
|
1521 //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
|
1522 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
|
1523 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
|
1524 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
|
1525 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
|
1526 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
|
1527 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
|
1528 //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
|
1529 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1530 /* 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
|
1531 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
|
1532 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
|
1533 //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
|
1534 |
92c102dd64a3
Added all 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 /* 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
|
1536 case OS.WM_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
|
1537 redraw = findImageControl () !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
|
1538 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
|
1539 //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
|
1540 |
92c102dd64a3
Added all 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 /* 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
|
1542 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
|
1543 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
|
1544 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
|
1545 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
|
1546 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
|
1547 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
|
1548 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
|
1549 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
|
1550 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
|
1551 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
|
1552 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
|
1553 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
|
1554 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
|
1555 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
|
1556 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
|
1557 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
|
1558 //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
|
1559 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1560 /* 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
|
1561 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
|
1562 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
|
1563 if (findImageControl () !is null) { |
75 | 1564 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
1565 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1566 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
|
1567 } |
82 | 1568 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
|
1569 } |
213 | 1570 int /*long*/ code = OS.CallWindowProc (TreeProc, 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
|
1571 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
|
1572 /* 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
|
1573 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
|
1574 if (wParam is OS.VK_CONTROL || wParam is OS.VK_SHIFT) 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
|
1575 //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
|
1576 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
|
1577 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
|
1578 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
|
1579 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
|
1580 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
|
1581 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
|
1582 //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
|
1583 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1584 /* 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
|
1585 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
|
1586 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
|
1587 //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
|
1588 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1589 /* 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
|
1590 case OS.WM_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
|
1591 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
|
1592 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
|
1593 OS.InvalidateRect (handle, null, true); |
75 | 1594 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
|
1595 } |
92c102dd64a3
Added all 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 //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
|
1597 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1598 /* 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
|
1599 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
|
1600 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
|
1601 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
|
1602 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
|
1603 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
|
1604 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
|
1605 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
|
1606 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
|
1607 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
|
1608 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
|
1609 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
|
1610 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
|
1611 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
|
1612 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
|
1613 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
|
1614 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
|
1615 //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
|
1616 |
92c102dd64a3
Added all 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 /* 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
|
1618 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
|
1619 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
|
1620 if (findImageControl () !is null) { |
75 | 1621 if (hItem !is cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
1622 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
|
1623 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1624 } |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 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
|
1627 } |
92c102dd64a3
Added all 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 case OS.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
|
1630 painted = 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
|
1631 break; |
82 | 1632 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
|
1633 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
1634 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
|
1635 } |
92c102dd64a3
Added all 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 |
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
|
1637 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
|
1638 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
|
1639 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
|
1640 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
|
1641 OS.SendMessage (handle, OS.TVM_SETSCROLLTIME, 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
|
1642 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1643 if (EXPLORER_THEME) { |
213 | 1644 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
|
1645 int exStyle = OS.SendMessage (handle, OS.TVM_GETEXTENDEDSTYLE, 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
|
1646 if ((exStyle & OS.TVS_EX_DOUBLEBUFFER) !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
|
1647 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 bool checkData (TreeItem 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
|
1652 if ((style & DWT.VIRTUAL) is 0) return true; |
213 | 1653 if (!item.cached) { |
1654 TreeItem parentItem = item.getParentItem (); | |
1655 return checkData (item, parentItem is null ? indexOf (item) : parentItem.indexOf (item), redraw); | |
1656 } | |
1657 return 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
|
1658 } |
92c102dd64a3
Added all 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 bool checkData (TreeItem 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
|
1661 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
|
1662 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
|
1663 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
|
1664 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
|
1665 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
|
1666 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
|
1667 TreeItem oldItem = 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
|
1668 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
|
1669 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
|
1670 //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
|
1671 currentItem = oldItem; |
92c102dd64a3
Added all 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 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
|
1673 if (redraw) 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
|
1674 } |
92c102dd64a3
Added all 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 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
|
1676 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1678 override bool checkHandle (HWND hwnd) { |
75 | 1679 return hwnd is handle || (hwndParent !is null && hwnd is hwndParent) || (hwndHeader !is null && hwnd is hwndHeader); |
1680 } | |
1681 | |
1682 bool checkScroll (HANDLE hItem) { | |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. If redraw is turned off using WM_SETREDRAW |
92c102dd64a3
Added all 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 * and a tree item that is not a child of the first root is selected or |
92c102dd64a3
Added all 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 * scrolled using TVM_SELECTITEM or TVM_ENSUREVISIBLE, then scrolling |
92c102dd64a3
Added all 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 * does not occur. The fix is to detect this case, and make sure |
92c102dd64a3
Added all 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 * that redraw is temporarily enabled. To avoid flashing, DefWindowProc() |
92c102dd64a3
Added all 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 * is called to disable redrawing. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * NOTE: The code that actually works around the problem 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
|
1692 * callers of 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
|
1693 */ |
92c102dd64a3
Added all 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 if (drawCount is 0) return false; |
213 | 1695 int /*long*/ hRoot = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
1696 int /*long*/ hParent = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hItem); | |
31
92c102dd64a3
Added all 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 while (hParent !is hRoot && hParent !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
|
1698 hParent = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hParent); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 return hParent 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
|
1701 } |
92c102dd64a3
Added all 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 |
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
|
1703 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
|
1704 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
|
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 * 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
|
1709 * 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
|
1710 * value. If the tree 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
|
1711 * 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
|
1712 * |
92c102dd64a3
Added all 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 * @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
|
1714 * @param all <code>true</code> if all child items of the indexed item should 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
|
1715 * cleared recursively, 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
|
1716 * |
92c102dd64a3
Added all 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 * @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
|
1718 * <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
|
1719 * </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
|
1720 * @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
|
1721 * <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
|
1722 * <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
|
1723 * </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
|
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 * @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
|
1726 * @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
|
1727 * |
92c102dd64a3
Added all 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 * @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
|
1729 */ |
92c102dd64a3
Added all 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 public void clear (int index, bool 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
|
1731 checkWidget (); |
75 | 1732 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
1733 if (hItem is null) error (DWT.ERROR_INVALID_RANGE); | |
31
92c102dd64a3
Added all 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 hItem = findItem (hItem, index); |
75 | 1735 if (hItem is null) error (DWT.ERROR_INVALID_RANGE); |
1736 TVITEM tvItem; | |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
75 | 1738 clear (hItem, &tvItem); |
31
92c102dd64a3
Added all 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 if (all) { |
75 | 1740 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
1741 clearAll (hItem, &tvItem, 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
|
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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1745 void clear (HANDLE hItem, TVITEM* tvItem) { |
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:
219
diff
changeset
|
1746 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 TreeItem item = 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
|
1748 if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem) !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
|
1749 item = tvItem.lParam !is -1 ? items [tvItem.lParam] : 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
|
1750 } |
92c102dd64a3
Added all 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 (item !is null) { |
213 | 1752 if ((style & DWT.VIRTUAL) !is 0 && !item.cached) 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
|
1753 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
|
1754 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
|
1755 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
1760 * 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
|
1761 * tree 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
|
1762 * 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
|
1763 * |
92c102dd64a3
Added all 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 * @param all <code>true</code> if all child items should be 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
|
1765 * recursively, 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
|
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 * @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
|
1768 * <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
|
1769 * <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
|
1770 * </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
|
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 * @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
|
1773 * @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
|
1774 * |
92c102dd64a3
Added all 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 * @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
|
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 clearAll (bool 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
|
1778 checkWidget (); |
75 | 1779 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
1780 if (hItem is null) return; | |
213 | 1781 if (all) { |
1782 bool redraw = false; | |
1783 for (int i=0; i<items.length; i++) { | |
1784 TreeItem item = items [i]; | |
1785 if (item !is null && item !is currentItem) { | |
1786 item.clear (); | |
1787 redraw = true; | |
1788 } | |
1789 } | |
1790 if (redraw) OS.InvalidateRect (handle, null, true); | |
1791 } else { | |
1792 TVITEM tvItem; | |
1793 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; | |
1794 clearAll (hItem, &tvItem, all); | |
1795 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
1798 void clearAll (HANDLE hItem, TVITEM* tvItem, bool all) { |
75 | 1799 while (hItem !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
|
1800 clear (hItem, tvItem); |
213 | 1801 if (all) { |
1802 auto hFirstItem = cast(HANDLE)OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); | |
1803 clearAll (hFirstItem, tvItem, all); | |
1804 } | |
75 | 1805 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
1806 } | |
1807 } | |
1808 | |
1809 private static extern(Windows) int CompareFunc (int lParam1, int lParam2, int lParamSort) { | |
1810 return sThis.CompareProc( lParam1, lParam2, lParamSort ); | |
1811 } | |
1812 int CompareProc (int lParam1, int lParam2, int lParamSort) { | |
31
92c102dd64a3
Added all 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 TreeItem item1 = items [lParam1], item2 = items [lParam2]; |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
1814 String text1 = item1.getText (lParamSort), text2 = item2.getText (lParamSort); |
75 | 1815 return sortDirection is DWT.UP ? ( text1 < text2 ) : ( text2 < text1 ); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1817 |
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
|
1818 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
|
1819 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
|
1820 int width = 0, height = 0; |
75 | 1821 if (hwndHeader !is null) { |
1822 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
|
1823 hdItem.mask = OS.HDI_WIDTH; |
213 | 1824 for (int i=0; i<columnCount; i++) { |
75 | 1825 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, i, &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
|
1826 width += hdItem.cxy; |
92c102dd64a3
Added all 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 } |
75 | 1828 RECT rect; |
1829 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
|
1830 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
|
1831 } |
75 | 1832 RECT rect; |
1833 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); | |
1834 while (hItem !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
|
1835 if ((style & DWT.VIRTUAL) is 0 && !painted) { |
75 | 1836 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; |
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:
219
diff
changeset
|
1838 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 tvItem.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
|
1840 ignoreCustomDraw = true; |
75 | 1841 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1842 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
|
1843 } |
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:
219
diff
changeset
|
1844 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &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
|
1845 width = Math.max (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
|
1846 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
|
1847 } |
213 | 1848 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1849 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1850 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
|
1851 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
|
1852 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
|
1853 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
|
1854 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
|
1855 width += 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
|
1856 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
|
1857 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
|
1858 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
|
1859 } |
92c102dd64a3
Added all 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 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
|
1861 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
|
1862 } |
92c102dd64a3
Added all 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 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
|
1864 } |
92c102dd64a3
Added all 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 |
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
|
1866 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
|
1867 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
|
1868 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
|
1869 |
92c102dd64a3
Added all 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 /* 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
|
1871 if (EXPLORER_THEME) { |
213 | 1872 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
|
1873 explorerTheme = true; |
75 | 1874 OS.SetWindowTheme (handle, cast(TCHAR*) Display.EXPLORER, 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
|
1875 int bits = OS.TVS_EX_DOUBLEBUFFER | OS.TVS_EX_FADEINOUTEXPANDOS | OS.TVS_EX_RICHTOOLTIP; |
92c102dd64a3
Added all 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 if ((style & DWT.FULL_SELECTION) is 0) bits |= OS.TVS_EX_AUTOHSCROLL; |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, 0, 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
|
1878 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When the tree is using the explorer |
92c102dd64a3
Added all 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 * theme, it does not use COLOR_WINDOW_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
|
1881 * default foreground color. The fix is to explicitly |
92c102dd64a3
Added all 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 * set the 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
|
1883 */ |
92c102dd64a3
Added all 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 setForegroundPixel (-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
|
1885 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1888 /* |
92c102dd64a3
Added all 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 * 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
|
1890 * 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
|
1891 * 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
|
1892 * 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
|
1893 * 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
|
1894 * 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
|
1895 * 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
|
1896 * 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
|
1897 */ |
117 | 1898 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
|
1899 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
|
1900 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
|
1901 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* 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
|
1905 if ((style & DWT.CHECK) !is 0) setCheckboxImageList (); |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * 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
|
1909 * 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
|
1910 * 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
|
1911 * 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
|
1912 * 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
|
1913 * 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
|
1914 * 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
|
1915 * 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
|
1916 * 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
|
1917 * 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
|
1918 */ |
75 | 1919 HFONT 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
|
1920 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
|
1921 } |
92c102dd64a3
Added all 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 void createHeaderToolTips () { |
117 | 1924 static if (OS.IsWinCE) return; |
75 | 1925 if (headerToolTipHandle !is null) return; |
213 | 1926 int bits = 0; |
1927 if (OS.WIN32_VERSION >= OS.VERSION (4, 10)) { | |
1928 if ((style & DWT.RIGHT_TO_LEFT) !is 0) bits |= OS.WS_EX_LAYOUTRTL; | |
1929 } | |
31
92c102dd64a3
Added all 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 headerToolTipHandle = OS.CreateWindowEx ( |
213 | 1931 bits, |
75 | 1932 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
|
1933 null, |
213 | 1934 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
|
1935 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
|
1936 handle, |
75 | 1937 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
|
1938 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
|
1939 null); |
75 | 1940 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
|
1941 /* |
92c102dd64a3
Added all 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 * 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
|
1943 * 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
|
1944 * 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
|
1945 * 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
|
1946 * 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
|
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 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
|
1949 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void createItem (TreeColumn column, int index) { |
75 | 1952 if (hwndHeader is null) createParent (); |
31
92c102dd64a3
Added all 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 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
|
1954 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
|
1955 TreeColumn [] newColumns = new TreeColumn [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
|
1956 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
|
1957 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
|
1958 } |
92c102dd64a3
Added all 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 for (int i=0; i<items.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
|
1960 TreeItem 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
|
1961 if (item !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
1962 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
|
1963 if (strings !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
1964 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
|
1965 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
|
1966 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
|
1967 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
|
1968 } |
92c102dd64a3
Added all 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 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
|
1970 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
|
1971 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
|
1972 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
|
1973 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
|
1974 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
|
1975 } |
92c102dd64a3
Added all 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 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
|
1977 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
|
1978 if (strings is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
1979 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
|
1980 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
|
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 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
|
1983 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
|
1984 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
|
1985 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
|
1986 } |
92c102dd64a3
Added all 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 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
|
1988 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1989 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1990 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
|
1991 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
|
1992 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
|
1993 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
|
1994 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
|
1995 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
|
1996 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
|
1997 } |
92c102dd64a3
Added all 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 (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
|
1999 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
|
2000 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
|
2001 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
|
2002 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
|
2003 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
|
2004 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
|
2005 } |
92c102dd64a3
Added all 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 (item.cellFont !is null) { |
213 | 2007 Font [] cellFont = item.cellFont; |
2008 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
|
2009 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
|
2010 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
|
2011 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
|
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 } |
92c102dd64a3
Added all 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 } |
213 | 2015 System.arraycopy (columns, index, columns, index + 1, columnCount++ - index); |
31
92c102dd64a3
Added all 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 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
|
2017 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Bug in Windows. For some reason, when HDM_INSERTITEM |
92c102dd64a3
Added all 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 * is used to insert an item into a header without 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
|
2021 * if is not possible to set the text at a later 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
|
2022 * The fix is to insert the item with 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
|
2023 */ |
75 | 2024 auto hHeap = OS.GetProcessHeap (); |
2025 auto pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, TCHAR.sizeof); | |
2026 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
|
2027 hdItem.mask = OS.HDI_TEXT | 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
|
2028 hdItem.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
|
2029 if ((column.style & DWT.LEFT) is DWT.LEFT) hdItem.fmt = OS.HDF_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
|
2030 if ((column.style & DWT.CENTER) is DWT.CENTER) hdItem.fmt = OS.HDF_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
|
2031 if ((column.style & DWT.RIGHT) is DWT.RIGHT) hdItem.fmt = OS.HDF_RIGHT; |
75 | 2032 OS.SendMessage (hwndHeader, OS.HDM_INSERTITEM, index, &hdItem); |
2033 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
|
2034 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2035 /* When the first column is created, hide the horizontal scroll bar */ |
213 | 2036 if (columnCount 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
|
2037 scrollWidth = 0; |
213 | 2038 if ((style & DWT.H_SCROLL) !is 0) { |
2039 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
2040 bits |= OS.TVS_NOHSCROLL; | |
2041 OS.SetWindowLong (handle, OS.GWL_STYLE, bits); | |
2042 } | |
31
92c102dd64a3
Added all 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 TVS_NOHSCROLL is set after 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
|
2045 * have been inserted into the tree, Windows shows 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 * scroll bar. The fix is to check for this case 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
|
2047 * explicitly hide the scroll bar explicitly. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 int count = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
2050 if (count !is 0) { |
117 | 2051 static if (!OS.IsWinCE) OS.ShowScrollBar (handle, OS.SB_HORZ, 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
|
2052 } |
213 | 2053 createItemToolTips (); |
2054 if (itemToolTipHandle !is null) { | |
2055 OS.SendMessage (itemToolTipHandle, OS.TTM_SETDELAYTIME, OS.TTDT_AUTOMATIC, -1); | |
2056 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 setScrollWidth (); |
92c102dd64a3
Added all 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 updateImageList (); |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Redraw to hide the items when the first column is created */ |
213 | 2063 if (columnCount is 1 && OS.SendMessage (handle, OS.TVM_GETCOUNT, 0, 0) !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
|
2064 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
|
2065 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Add the tool tip item for the header */ |
75 | 2068 if (headerToolTipHandle !is null) { |
2069 RECT rect; | |
2070 if (OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &rect) !is 0) { | |
2071 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
|
2072 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
|
2073 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
|
2074 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
|
2075 lpti.uId = column.id = display.nextToolTipId++; |
75 | 2076 lpti.rect.left = rect.left; |
2077 lpti.rect.top = rect.top; | |
2078 lpti.rect.right = rect.right; | |
2079 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
|
2080 lpti.lpszText = OS.LPSTR_TEXTCALLBACK; |
75 | 2081 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
|
2082 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2085 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2086 void createItem (TreeItem item, HANDLE hParent, HANDLE hInsertAfter, HANDLE hItem) { |
31
92c102dd64a3
Added all 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 int id = -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
|
2088 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
|
2089 id = lastID < items.length ? lastID : 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 while (id < items.length && items [id] !is null) id++; |
92c102dd64a3
Added all 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 if (id 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
|
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 * 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
|
2094 * 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
|
2095 * 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
|
2096 * 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
|
2097 */ |
92c102dd64a3
Added all 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 int length = 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
|
2099 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
|
2100 length = items.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
|
2101 } 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
|
2102 shrink = 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
|
2103 length = 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
|
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 TreeItem [] newItems = new TreeItem [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
|
2106 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
|
2107 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
|
2108 } |
92c102dd64a3
Added all 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 lastID = id + 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
|
2110 } |
75 | 2111 HANDLE hNewItem; |
2112 HANDLE hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hParent); | |
2113 bool fixParent = hFirstItem is null; | |
2114 if (hItem is null) { | |
2115 TVINSERTSTRUCT tvInsert; | |
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:
219
diff
changeset
|
2116 tvInsert.hParent = cast(HTREEITEM)hParent; |
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:
219
diff
changeset
|
2117 tvInsert.hInsertAfter = cast(HTREEITEM)hInsertAfter; |
75 | 2118 tvInsert.item.lParam = id; |
2119 tvInsert.item.pszText = OS.LPSTR_TEXTCALLBACK; | |
2120 tvInsert.item.iImage = tvInsert.item.iSelectedImage = cast(HBITMAP) OS.I_IMAGECALLBACK; | |
2121 tvInsert.item.mask = OS.TVIF_TEXT | OS.TVIF_IMAGE | OS.TVIF_SELECTEDIMAGE | OS.TVIF_HANDLE | OS.TVIF_PARAM; | |
31
92c102dd64a3
Added all 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 if ((style & DWT.CHECK) !is 0) { |
75 | 2123 tvInsert.item.mask = tvInsert.item.mask | OS.TVIF_STATE; |
2124 tvInsert.item.state = 1 << 12; | |
2125 tvInsert.item.stateMask = OS.TVIS_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
|
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 ignoreCustomDraw = true; |
75 | 2128 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_INSERTITEM, 0, &tvInsert); |
31
92c102dd64a3
Added all 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 ignoreCustomDraw = false; |
75 | 2130 if (hNewItem is null) error (DWT.ERROR_ITEM_NOT_ADDED); |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * 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
|
2133 */ |
92c102dd64a3
Added all 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 // if (hParent !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
|
2135 // 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
|
2136 // bits |= OS.TVS_LINESATROOT; |
92c102dd64a3
Added all 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 // 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
|
2138 // } |
92c102dd64a3
Added all 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 } else { |
75 | 2140 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
2142 tvItem.hItem = cast(HTREEITEM)( hNewItem = hItem ); |
31
92c102dd64a3
Added all 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 tvItem.lParam = id; |
75 | 2144 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 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
|
2147 item.handle = hNewItem; |
92c102dd64a3
Added all 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 items [id] = 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
|
2149 } |
75 | 2150 if (hFirstItem is null) { |
213 | 2151 if (cast(int)hInsertAfter is OS.TVI_FIRST || cast(int)hInsertAfter is OS.TVI_LAST) { |
2152 hFirstIndexOf = hLastIndexOf = hFirstItem = hNewItem; | |
2153 itemCount = lastIndexOf = 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
|
2154 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (hFirstItem is hFirstIndexOf && itemCount !is -1) itemCount++; |
75 | 2157 if (hItem 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
|
2158 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When a child item is added to a parent 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
|
2160 * that has no children outside of WM_NOTIFY with control 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
|
2161 * TVN_ITEMEXPANDED, the tree widget does not redraw 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
|
2162 * indicator. The fix is to detect the case when 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
|
2163 * child is added to a visible parent item and redraw the 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
|
2164 */ |
92c102dd64a3
Added all 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 if (fixParent) { |
92c102dd64a3
Added all 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 if (drawCount is 0 && OS.IsWindowVisible (handle)) { |
75 | 2167 RECT rect; |
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:
219
diff
changeset
|
2168 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hParent, &rect, false)) { |
75 | 2169 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
|
2170 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When a new item is added while 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
|
2175 * is requesting data a tree item using TVN_GETDISPINFO, |
92c102dd64a3
Added all 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 * outstanding damage for items that are below 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
|
2177 * is not scrolled. The fix is to explicitly damage 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
|
2178 * 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
|
2179 */ |
92c102dd64a3
Added all 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 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
|
2181 if (currentItem !is null) { |
75 | 2182 RECT rect; |
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:
219
diff
changeset
|
2183 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect, false)) { |
75 | 2184 RECT damageRect; |
2185 bool damaged = cast(bool) OS.GetUpdateRect (handle, &damageRect, 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
|
2186 if (damaged && damageRect.top < rect.bottom) { |
117 | 2187 static if (OS.IsWinCE) { |
75 | 2188 OS.OffsetRect (&damageRect, 0, rect.bottom - rect.top); |
2189 OS.InvalidateRect (handle, &damageRect, 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
|
2190 } else { |
75 | 2191 HRGN 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
|
2192 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
|
2193 if (result !is OS.NULLREGION) { |
92c102dd64a3
Added all 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 OS.OffsetRgn (rgn, 0, 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
|
2195 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
|
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 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
|
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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void createItemToolTips () { |
117 | 2208 static if (OS.IsWinCE) return; |
75 | 2209 if (itemToolTipHandle !is null) return; |
213 | 2210 int bits1 = OS.GetWindowLong (handle, OS.GWL_STYLE); |
2211 bits1 |= OS.TVS_NOTOOLTIPS; | |
2212 OS.SetWindowLong (handle, OS.GWL_STYLE, bits1); | |
2213 int bits2 = 0; | |
2214 if (OS.WIN32_VERSION >= OS.VERSION (4, 10)) { | |
2215 if ((style & DWT.RIGHT_TO_LEFT) !is 0) bits2 |= OS.WS_EX_LAYOUTRTL; | |
2216 } | |
2217 /* | |
2218 * Feature in Windows. For some reason, when the user | |
2219 * clicks on a tool tip, it temporarily takes focus, even | |
2220 * when WS_EX_NOACTIVATE is specified. The fix is to | |
2221 * use WS_EX_TRANSPARENT, even though WS_EX_TRANSPARENT | |
2222 * is documented to affect painting, not hit testing. | |
2223 * | |
2224 * NOTE: Windows 2000 doesn't have the problem and | |
2225 * setting WS_EX_TRANSPARENT causes pixel corruption. | |
2226 */ | |
2227 if (OS.COMCTL32_MAJOR >= 6) bits2 |= OS.WS_EX_TRANSPARENT; | |
31
92c102dd64a3
Added all 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 itemToolTipHandle = OS.CreateWindowEx ( |
213 | 2229 bits2, |
75 | 2230 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
|
2231 null, |
213 | 2232 OS.TTS_NOPREFIX | OS.TTS_NOANIMATE | OS.TTS_NOFADE, |
31
92c102dd64a3
Added all 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 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
|
2234 handle, |
75 | 2235 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
|
2236 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
|
2237 null); |
75 | 2238 if (itemToolTipHandle is null) error (DWT.ERROR_NO_HANDLES); |
213 | 2239 OS.SendMessage (itemToolTipHandle, OS.TTM_SETDELAYTIME, OS.TTDT_INITIAL, 0); |
75 | 2240 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
|
2241 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
|
2242 lpti.hwnd = handle; |
75 | 2243 lpti.uId = cast(int)handle; |
31
92c102dd64a3
Added all 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 lpti.uFlags = OS.TTF_SUBCLASS | OS.TTF_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
|
2245 lpti.lpszText = OS.LPSTR_TEXTCALLBACK; |
75 | 2246 OS.SendMessage (itemToolTipHandle, 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
|
2247 } |
92c102dd64a3
Added all 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 void createParent () { |
92c102dd64a3
Added all 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 forceResize (); |
75 | 2251 RECT rect; |
2252 OS.GetWindowRect (handle, &rect); | |
2253 OS.MapWindowPoints (null, parent.handle, cast(POINT*) &rect, 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
|
2254 int oldStyle = 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
|
2255 int newStyle = super.widgetStyle () & ~OS.WS_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
|
2256 if ((oldStyle & OS.WS_DISABLED) !is 0) newStyle |= OS.WS_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
|
2257 // if ((oldStyle & OS.WS_VISIBLE) !is 0) newStyle |= OS.WS_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
|
2258 hwndParent = OS.CreateWindowEx ( |
92c102dd64a3
Added all 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 super.widgetExtStyle (), |
75 | 2260 StrToTCHARz( 0, super.windowClass () ), |
31
92c102dd64a3
Added all 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 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
|
2262 newStyle, |
92c102dd64a3
Added all 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 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
|
2264 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
|
2265 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
|
2266 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
|
2267 parent.handle, |
75 | 2268 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
|
2269 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
|
2270 null); |
75 | 2271 if (hwndParent is null) error (DWT.ERROR_NO_HANDLES); |
213 | 2272 OS.SetWindowLongPtr (hwndParent, OS.GWLP_ID, cast(LONG_PTR)hwndParent); |
31
92c102dd64a3
Added all 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 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
|
2274 if (OS.WIN32_VERSION >= OS.VERSION (4, 10)) { |
92c102dd64a3
Added all 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 bits |= OS.WS_EX_NOINHERITLAYOUT; |
92c102dd64a3
Added all 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 if ((style & DWT.RIGHT_TO_LEFT) !is 0) bits |= OS.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
|
2277 } |
92c102dd64a3
Added all 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 hwndHeader = OS.CreateWindowEx ( |
92c102dd64a3
Added all 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 bits, |
75 | 2280 HeaderClass.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
|
2281 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
|
2282 OS.HDS_BUTTONS | OS.HDS_FULLDRAG | OS.HDS_DRAGDROP | OS.HDS_HIDDEN | OS.WS_CHILD | OS.WS_CLIPSIBLINGS, |
92c102dd64a3
Added all 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 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
|
2284 hwndParent, |
75 | 2285 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
|
2286 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
|
2287 null); |
75 | 2288 if (hwndHeader is null) error (DWT.ERROR_NO_HANDLES); |
213 | 2289 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_ID, cast(LONG_PTR)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
|
2290 if (OS.IsDBLocale) { |
75 | 2291 auto hIMC = OS.ImmGetContext (handle); |
31
92c102dd64a3
Added all 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 OS.ImmAssociateContext (hwndParent, hIMC); |
92c102dd64a3
Added all 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 OS.ImmAssociateContext (hwndHeader, hIMC); |
92c102dd64a3
Added all 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 OS.ImmReleaseContext (handle, hIMC); |
92c102dd64a3
Added all 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 //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
|
2297 // if (!OS.IsPPC) { |
92c102dd64a3
Added all 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 // if ((style & DWT.BORDER) !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
|
2299 // int oldExStyle = OS.GetWindowLong (handle, OS.GWL_EXSTYLE); |
92c102dd64a3
Added all 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 // oldExStyle &= ~OS.WS_EX_CLIENTEDGE; |
92c102dd64a3
Added all 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 // OS.SetWindowLong (handle, OS.GWL_EXSTYLE, oldExStyle); |
92c102dd64a3
Added all 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 // } |
75 | 2304 HFONT hFont = cast(HFONT) OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); |
2305 if (hFont !is null) OS.SendMessage (hwndHeader, OS.WM_SETFONT, hFont, 0); | |
2306 HANDLE hwndInsertAfter = OS.GetWindow (handle, OS.GW_HWNDPREV); | |
31
92c102dd64a3
Added all 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 int flags = OS.SWP_NOSIZE | OS.SWP_NOMOVE | OS.SWP_NOACTIVATE; |
92c102dd64a3
Added all 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 SetWindowPos (hwndParent, hwndInsertAfter, 0, 0, 0, 0, flags); |
75 | 2309 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
|
2310 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
|
2311 info.fMask = OS.SIF_RANGE | OS.SIF_PAGE; |
75 | 2312 OS.GetScrollInfo (hwndParent, 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
|
2313 info.nPage = info.nMax + 1; |
75 | 2314 OS.SetScrollInfo (hwndParent, OS.SB_HORZ, &info, true); |
2315 OS.GetScrollInfo (hwndParent, OS.SB_VERT, &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
|
2316 info.nPage = info.nMax + 1; |
75 | 2317 OS.SetScrollInfo (hwndParent, OS.SB_VERT, &info, 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
|
2318 customDraw = 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
|
2319 deregister (); |
92c102dd64a3
Added all 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 if ((oldStyle & OS.WS_VISIBLE) !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
|
2321 OS.ShowWindow (hwndParent, OS.SW_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
|
2322 } |
75 | 2323 HWND hwndFocus = OS.GetFocus (); |
31
92c102dd64a3
Added all 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 if (hwndFocus is handle) OS.SetFocus (hwndParent); |
92c102dd64a3
Added all 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 OS.SetParent (handle, hwndParent); |
92c102dd64a3
Added all 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 if (hwndFocus is handle) 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
|
2327 register (); |
92c102dd64a3
Added all 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 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
|
2329 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2330 |
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
|
2331 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
|
2332 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
|
2333 items = new TreeItem [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
|
2334 columns = new TreeColumn [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
|
2335 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
|
2336 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2337 |
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
|
2338 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
|
2339 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
|
2340 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2341 |
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
|
2342 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
|
2343 super.deregister (); |
75 | 2344 if (hwndParent !is null) display.removeControl (hwndParent); |
2345 if (hwndHeader !is null) display.removeControl (hwndHeader); | |
2346 } | |
2347 | |
2348 void deselect (HANDLE hItem, TVITEM* tvItem, HANDLE hIgnoreItem) { | |
2349 while (hItem !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
|
2350 if (hItem !is hIgnoreItem) { |
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:
219
diff
changeset
|
2351 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2352 OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2353 } |
75 | 2354 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2355 deselect (hFirstItem, tvItem, hIgnoreItem); |
75 | 2356 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
213 | 2361 * Deselects an item in the receiver. If the item was already |
2362 * deselected, it remains deselected. | |
2363 * | |
2364 * @param item the item to be deselected | |
2365 * | |
2366 * @exception IllegalArgumentException <ul> | |
2367 * <li>ERROR_NULL_ARGUMENT - if the item is null</li> | |
2368 * <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li> | |
2369 * </ul> | |
2370 * @exception DWTException <ul> | |
2371 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
2372 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
2373 * </ul> | |
2374 * | |
2375 * @since 3.4 | |
2376 */ | |
2377 public void deselect (TreeItem item) { | |
2378 checkWidget (); | |
2379 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); | |
2380 if (item.isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT); | |
2381 TVITEM tvItem; | |
2382 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; | |
2383 tvItem.stateMask = OS.TVIS_SELECTED; | |
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:
219
diff
changeset
|
2384 tvItem.hItem = cast(HTREEITEM)item.handle; |
213 | 2385 OS.SendMessage (handle, OS.TVM_SETITEM, 0, cast(int)&tvItem); |
2386 } | |
2387 | |
2388 /** | |
31
92c102dd64a3
Added all 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 * 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
|
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 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
|
2397 checkWidget (); |
75 | 2398 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
2400 tvItem.stateMask = OS.TVIS_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
|
2401 if ((style & DWT.SINGLE) !is 0) { |
75 | 2402 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
2403 if (hItem !is null) { | |
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:
219
diff
changeset
|
2404 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 2405 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } else { |
213 | 2408 auto oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
2409 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
31
92c102dd64a3
Added all 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 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 2411 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
2412 deselect (hItem, &tvItem, 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
|
2413 } 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
|
2414 for (int i=0; i<items.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
|
2415 TreeItem 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
|
2416 if (item !is null) { |
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:
219
diff
changeset
|
2417 tvItem.hItem = cast(HTREEITEM)item.handle; |
75 | 2418 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 2422 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void destroyItem (TreeColumn column) { |
75 | 2427 if (hwndHeader is null) error (DWT.ERROR_ITEM_NOT_REMOVED); |
31
92c102dd64a3
Added all 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 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
|
2429 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
|
2430 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
|
2431 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
|
2432 } |
92c102dd64a3
Added all 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 int [] oldOrder = new int [columnCount]; |
75 | 2434 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, 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
|
2435 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
|
2436 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
|
2437 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
|
2438 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
|
2439 } |
75 | 2440 RECT headerRect; |
2441 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &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
|
2442 if (OS.SendMessage (hwndHeader, OS.HDM_DELETEITEM, 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
|
2443 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
|
2444 } |
92c102dd64a3
Added all 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 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
|
2446 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
|
2447 for (int i=0; i<items.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
|
2448 TreeItem 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
|
2449 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
|
2450 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
|
2451 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
|
2452 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
|
2453 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
|
2454 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
|
2455 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
|
2456 } 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
|
2457 if (item.strings !is null) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
2458 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
|
2459 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
|
2460 item.text = strings [1] !is null ? strings [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
|
2461 } |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
2462 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
|
2463 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
|
2464 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
|
2465 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
|
2466 } 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
|
2467 if (index is 0) 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
|
2468 } |
92c102dd64a3
Added all 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 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
|
2470 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
|
2471 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
|
2472 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
|
2473 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
|
2474 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
|
2475 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
|
2476 } 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
|
2477 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
|
2478 } |
92c102dd64a3
Added all 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 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
|
2480 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
|
2481 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
|
2482 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
|
2483 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
|
2484 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
|
2485 } |
92c102dd64a3
Added all 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 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
|
2487 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
|
2488 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
|
2489 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
|
2490 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
|
2491 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
|
2492 } |
92c102dd64a3
Added all 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 if (item.cellFont !is null) { |
213 | 2494 Font [] cellFont = item.cellFont; |
2495 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
|
2496 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
|
2497 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
|
2498 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
|
2499 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * When the last column is deleted, show the horizontal |
92c102dd64a3
Added all 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 * scroll bar. Otherwise, left align 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
|
2507 * and redraw the columns to 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
|
2508 */ |
92c102dd64a3
Added all 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 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
|
2510 scrollWidth = 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 if (!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
|
2512 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); |
213 | 2513 if ((style & DWT.H_SCROLL) !is 0) bits &= ~OS.TVS_NOHSCROLL; |
31
92c102dd64a3
Added all 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 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
|
2515 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
|
2516 } |
213 | 2517 if (itemToolTipHandle !is null) { |
2518 OS.SendMessage (itemToolTipHandle, OS.TTM_SETDELAYTIME, OS.TTDT_INITIAL, 0); | |
2519 } | |
31
92c102dd64a3
Added all 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 } 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
|
2521 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
|
2522 columns [0].style &= ~(DWT.LEFT | DWT.RIGHT | DWT.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
|
2523 columns [0].style |= DWT.LEFT; |
75 | 2524 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
|
2525 hdItem.mask = OS.HDI_FORMAT | OS.HDI_IMAGE; |
75 | 2526 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, 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
|
2527 hdItem.fmt &= ~OS.HDF_JUSTIFYMASK; |
92c102dd64a3
Added all 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 hdItem.fmt |= OS.HDF_LEFT; |
75 | 2529 OS.SendMessage (hwndHeader, OS.HDM_SETITEM, index, &hdItem); |
2530 } | |
2531 RECT rect; | |
2532 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
|
2533 rect.left = headerRect.left; |
75 | 2534 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
|
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 setScrollWidth (); |
92c102dd64a3
Added all 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 updateImageList (); |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 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
|
2540 int [] newOrder = new int [columnCount]; |
75 | 2541 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, columnCount, 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
|
2542 TreeColumn [] newColumns = new TreeColumn [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
|
2543 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
|
2544 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
|
2545 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
|
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 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
|
2548 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
|
2549 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
|
2550 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Remove the tool tip item for the header */ |
75 | 2555 if (headerToolTipHandle !is null) { |
2556 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
|
2557 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
|
2558 lpti.uId = column.id; |
92c102dd64a3
Added all 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 lpti.hwnd = hwndHeader; |
75 | 2560 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
|
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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2564 void destroyItem (TreeItem item, HANDLE hItem) { |
75 | 2565 hFirstIndexOf = hLastIndexOf = 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
|
2566 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
|
2567 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When an item is removed that 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
|
2569 * visible in the tree because it belongs to a collapsed branch, |
92c102dd64a3
Added all 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 * Windows redraws the tree causing a flash for each 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
|
2571 * is removed. The fix is to detect whether 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
|
2572 * force the widget to be fully painted, turn off redraw, remove |
92c102dd64a3
Added all 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 * the item and validate the damage caused by the removing 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
|
2574 * 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
|
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 * NOTE: This fix is not necessary when double buffering 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
|
2577 * can cause problems for virtual trees due to the call 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
|
2578 * UpdateWindow() that flushes outstanding WM_PAINT events, |
92c102dd64a3
Added all 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 * allowing application code to add or remove items 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
|
2580 * this remove operation. |
92c102dd64a3
Added all 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 */ |
75 | 2582 HANDLE hParent; |
31
92c102dd64a3
Added all 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 bool fixRedraw = 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
|
2584 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
|
2585 if (drawCount is 0 && OS.IsWindowVisible (handle)) { |
75 | 2586 RECT rect; |
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:
219
diff
changeset
|
2587 fixRedraw = !OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, 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
|
2588 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (fixRedraw) { |
75 | 2591 hParent = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hItem); |
31
92c102dd64a3
Added all 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 OS.UpdateWindow (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
|
2593 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
|
2594 /* |
92c102dd64a3
Added all 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 * 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
|
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 // 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
|
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 if ((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
|
2600 ignoreDeselect = ignoreSelect = lockSelection = 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
|
2601 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When an item is deleted and a tool tip |
92c102dd64a3
Added all 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 * is showing, Window requests the new text for 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
|
2606 * that is under the cursor right away. This means that 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
|
2607 * multiple items are deleted, the tool tip flashes, 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
|
2608 * each new item in the tool tip as it is scrolled into view. |
92c102dd64a3
Added all 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 * The fix is to hide tool tips when any item is deleted. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * NOTE: This only happens on Vista. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
75 | 2614 auto hwndToolTip = cast(HWND) OS.SendMessage (handle, OS.TVM_GETTOOLTIPS, 0, 0); |
2615 if (hwndToolTip !is null) OS.SendMessage (hwndToolTip, OS.TTM_POP, 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
|
2616 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 shrink = 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
|
2619 OS.SendMessage (handle, OS.TVM_DELETEITEM, 0, hItem); |
92c102dd64a3
Added all 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 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
|
2621 if ((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
|
2622 ignoreDeselect = ignoreSelect = lockSelection = 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
|
2623 } |
92c102dd64a3
Added all 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 if (fixRedraw) { |
92c102dd64a3
Added all 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 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
|
2626 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
|
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 * If the item that was deleted was the last child of a tree 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
|
2629 * is visible, redraw the parent item to force the + / - to be updated. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hParent) is 0) { |
75 | 2632 RECT rect; |
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:
219
diff
changeset
|
2633 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hParent, &rect, false)) { |
75 | 2634 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
|
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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 int count = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
2639 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
|
2640 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
|
2641 OS.SendMessage (handle, OS.TVM_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
|
2642 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
|
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 imageList = null; |
75 | 2645 if (hwndParent is null && !linesVisible) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2646 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
|
2647 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
|
2648 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 items = new TreeItem [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
|
2651 scrollWidth = 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
|
2652 setScrollWidth (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2654 updateScrollBar (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2655 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2656 |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
2657 override void destroyScrollBar (int type) { |
213 | 2658 super.destroyScrollBar (type); |
2659 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
2660 if ((style & (DWT.H_SCROLL | DWT.V_SCROLL)) is 0) { | |
2661 bits &= ~(OS.WS_HSCROLL | OS.WS_VSCROLL); | |
2662 bits |= OS.TVS_NOSCROLL; | |
2663 } else { | |
2664 if ((style & DWT.H_SCROLL) is 0) { | |
2665 bits &= ~OS.WS_HSCROLL; | |
2666 bits |= OS.TVS_NOHSCROLL; | |
2667 } | |
2668 } | |
2669 OS.SetWindowLong (handle, OS.GWL_STYLE, bits); | |
2670 } | |
2671 | |
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
|
2672 override void enableDrag (bool enabled) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2673 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
|
2674 if (enabled && 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
|
2675 bits &= ~OS.TVS_DISABLEDRAGDROP; |
92c102dd64a3
Added all 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 } 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
|
2677 bits |= OS.TVS_DISABLEDRAGDROP; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
2680 } |
92c102dd64a3
Added all 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 |
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
|
2682 override void enableWidget (bool enabled) { |
31
92c102dd64a3
Added all 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 super.enableWidget (enabled); |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When a tree is given a background 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
|
2686 * using TVM_SETBKCOLOR and the tree is disabled, 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
|
2687 * the tree using the background color rather than the 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
|
2688 * colors. This is different from the table which draws grayed. |
92c102dd64a3
Added all 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 * The fix is to set the default background color while the tree |
92c102dd64a3
Added all 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 * is disabled and restore it when enabled. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 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
|
2693 /* |
92c102dd64a3
Added all 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 * Bug in Windows. On Vista only, Windows does not draw 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
|
2695 * the background color when the tree is disabled. 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
|
2696 * to set the default color, even when the color has not been |
92c102dd64a3
Added all 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 * changed, causing Windows to draw correctly. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 (!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
|
2700 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
|
2701 } |
92c102dd64a3
Added all 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 if (control !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
|
2703 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
|
2704 _setBackgroundPixel (enabled ? control.getBackgroundPixel () : -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
|
2705 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2706 } |
75 | 2707 if (hwndParent !is null) OS.EnableWindow (hwndParent, enabled); |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
2711 * TVS_FULLROWSELECT, the background color 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
|
2712 * entire row is filled when an item 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
|
2713 * drawing on top of the sort column color. 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
|
2714 * is to clear TVS_FULLROWSELECT when a their 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
|
2715 * as 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
|
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 updateFullSelection (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
2720 bool findCell (int x, int y, inout TreeItem item, inout int index, inout RECT* cellRect, inout RECT* itemRect) { |
213 | 2721 bool found = false; |
2722 TVHITTESTINFO lpht; | |
2723 lpht.pt.x = x; | |
2724 lpht.pt.y = y; | |
2725 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); | |
2726 if (lpht.hItem !is null) { | |
2727 item = _getItem (lpht.hItem); | |
2728 POINT pt; | |
2729 pt.x = x; | |
2730 pt.y = y; | |
2731 auto hDC = OS.GetDC (handle); | |
2732 HFONT oldFont; | |
2733 auto newFont = cast(HFONT)OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
2734 if (newFont !is null) oldFont = OS.SelectObject (hDC, newFont); | |
2735 RECT rect; | |
2736 if (hwndParent !is null) { | |
2737 OS.GetClientRect (hwndParent, &rect); | |
2738 OS.MapWindowPoints (hwndParent, handle, cast(POINT*)&rect, 2); | |
2739 } else { | |
2740 OS.GetClientRect (handle, &rect); | |
2741 } | |
2742 int count = Math.max (1, columnCount); | |
2743 int [] order = new int [count]; | |
2744 if (hwndHeader !is null) OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, count, cast(int) order.ptr); | |
2745 index = 0; | |
2746 bool quit = false; | |
2747 while (index < count && !quit) { | |
2748 auto hFont = item.fontHandle (order [index]); | |
2749 if (hFont !is cast(HFONT)-1) hFont = OS.SelectObject (hDC, hFont); | |
2750 cellRect = item.getBounds (order [index], true, false, true, false, true, hDC); | |
2751 if (cellRect.left > rect.right) { | |
2752 quit = true; | |
2753 } else { | |
2754 cellRect.right = Math.min (cellRect.right, rect.right); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
2755 if (OS.PtInRect ( cellRect, pt)) { |
213 | 2756 if (isCustomToolTip ()) { |
2757 Event event = sendMeasureItemEvent (item, order [index], hDC); | |
2758 if (isDisposed () || item.isDisposed ()) break; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
2759 itemRect = new RECT (); |
213 | 2760 itemRect.left = event.x; |
2761 itemRect.right = event.x + event.width; | |
2762 itemRect.top = event.y; | |
2763 itemRect.bottom = event.y + event.height; | |
2764 } else { | |
2765 itemRect = item.getBounds (order [index], true, false, false, false, false, hDC); | |
2766 } | |
2767 if (itemRect.right > cellRect.right) found = true; | |
2768 quit = true; | |
2769 } | |
2770 } | |
2771 if (hFont !is cast(HFONT)-1) OS.SelectObject (hDC, hFont); | |
2772 if (!found) index++; | |
2773 } | |
2774 if (newFont !is null) OS.SelectObject (hDC, oldFont); | |
2775 OS.ReleaseDC (handle, hDC); | |
2776 } | |
2777 return found; | |
2778 } | |
2779 | |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2780 int findIndex (HANDLE hFirstItem, HANDLE hItem) { |
75 | 2781 if (hFirstItem is null) return -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
|
2782 if (hFirstItem is hFirstIndexOf) { |
92c102dd64a3
Added all 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 if (hFirstIndexOf is hItem) { |
92c102dd64a3
Added all 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 hLastIndexOf = hFirstIndexOf; |
92c102dd64a3
Added all 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 return lastIndexOf = 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 } |
92c102dd64a3
Added all 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 (hLastIndexOf is hItem) return lastIndexOf; |
75 | 2788 auto hPrevItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUS, hLastIndexOf); |
31
92c102dd64a3
Added all 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 (hPrevItem is hItem) { |
92c102dd64a3
Added all 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 hLastIndexOf = hPrevItem; |
92c102dd64a3
Added all 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 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
|
2792 } |
75 | 2793 HANDLE hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hLastIndexOf); |
31
92c102dd64a3
Added all 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 if (hNextItem is hItem) { |
92c102dd64a3
Added all 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 hLastIndexOf = hNextItem; |
92c102dd64a3
Added all 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 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
|
2797 } |
92c102dd64a3
Added all 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 int previousIndex = lastIndexOf - 1; |
75 | 2799 while (hPrevItem !is null && hPrevItem !is hItem) { |
2800 hPrevItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUS, hPrevItem); | |
31
92c102dd64a3
Added all 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 --previousIndex; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2803 if (hPrevItem is hItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2804 hLastIndexOf = hPrevItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2805 return lastIndexOf = previousIndex; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2806 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2807 int nextIndex = lastIndexOf + 1; |
75 | 2808 while (hNextItem !is null && hNextItem !is hItem) { |
2809 hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hNextItem); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2810 nextIndex++; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2811 } |
92c102dd64a3
Added all 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 if (hNextItem is hItem) { |
92c102dd64a3
Added all 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 hLastIndexOf = hNextItem; |
92c102dd64a3
Added all 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 return lastIndexOf = nextIndex; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
2817 } |
75 | 2818 int index = 0; |
2819 auto hNextItem = hFirstItem; | |
2820 while (hNextItem !is null && hNextItem !is hItem) { | |
2821 hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hNextItem); | |
31
92c102dd64a3
Added all 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 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
|
2823 } |
92c102dd64a3
Added all 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 if (hNextItem is hItem) { |
92c102dd64a3
Added all 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 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
|
2826 hFirstIndexOf = hFirstItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2827 hLastIndexOf = hNextItem; |
92c102dd64a3
Added all 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 return lastIndexOf = 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
|
2829 } |
92c102dd64a3
Added all 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 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
|
2831 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2833 override Widget findItem (HANDLE hItem) { |
31
92c102dd64a3
Added all 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 return _getItem (hItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2835 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
2837 HANDLE findItem (HANDLE hFirstItem, int index) { |
75 | 2838 if (hFirstItem is null) 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
|
2839 if (hFirstItem is hFirstIndexOf) { |
92c102dd64a3
Added all 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 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
|
2841 lastIndexOf = 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
|
2842 return hLastIndexOf = hFirstIndexOf; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (lastIndexOf is index) return hLastIndexOf; |
92c102dd64a3
Added all 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 if (lastIndexOf - 1 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
|
2846 --lastIndexOf; |
75 | 2847 return hLastIndexOf = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUS, hLastIndexOf); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (lastIndexOf + 1 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
|
2850 lastIndexOf++; |
75 | 2851 return hLastIndexOf = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hLastIndexOf); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (index < 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
|
2854 int previousIndex = lastIndexOf - 1; |
75 | 2855 auto hPrevItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUS, hLastIndexOf); |
2856 while (hPrevItem !is null && index < previousIndex) { | |
2857 hPrevItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUS, hPrevItem); | |
31
92c102dd64a3
Added all 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 --previousIndex; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (index is previousIndex) { |
92c102dd64a3
Added all 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 lastIndexOf = previousIndex; |
92c102dd64a3
Added all 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 return hLastIndexOf = hPrevItem; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } 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
|
2865 int nextIndex = lastIndexOf + 1; |
75 | 2866 auto hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hLastIndexOf); |
2867 while (hNextItem !is null && nextIndex < index) { | |
2868 hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hNextItem); | |
31
92c102dd64a3
Added all 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 nextIndex++; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (index is nextIndex) { |
92c102dd64a3
Added all 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 lastIndexOf = nextIndex; |
92c102dd64a3
Added all 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 return hLastIndexOf = hNextItem; |
92c102dd64a3
Added all 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 } |
75 | 2876 return null; |
2877 } | |
2878 int nextIndex = 0; | |
2879 auto hNextItem = hFirstItem; | |
2880 while (hNextItem !is null && nextIndex < index) { | |
2881 hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hNextItem); | |
31
92c102dd64a3
Added all 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 nextIndex++; |
92c102dd64a3
Added all 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 if (index is nextIndex) { |
92c102dd64a3
Added all 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 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
|
2886 lastIndexOf = nextIndex; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2887 hFirstIndexOf = hFirstItem; |
92c102dd64a3
Added all 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 return hLastIndexOf = hNextItem; |
92c102dd64a3
Added all 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 } |
75 | 2890 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
|
2891 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 TreeItem getFocusItem () { |
92c102dd64a3
Added all 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 // checkWidget (); |
75 | 2895 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
2896 return hItem !is null ? _getItem (hItem) : 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
|
2897 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 * 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
|
2901 * |
92c102dd64a3
Added all 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 * @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
|
2903 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2904 * @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
|
2905 * <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
|
2906 * <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
|
2907 * </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
|
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 * @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
|
2910 */ |
92c102dd64a3
Added all 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 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
|
2912 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
|
2913 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
|
2914 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
2918 * |
92c102dd64a3
Added all 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 * @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
|
2920 * |
92c102dd64a3
Added all 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 * @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
|
2922 * <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
|
2923 * <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
|
2924 * </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
|
2925 * |
92c102dd64a3
Added all 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 * @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
|
2927 */ |
92c102dd64a3
Added all 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 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
|
2929 checkWidget (); |
75 | 2930 if (hwndHeader is null) return 0; |
2931 RECT rect; | |
2932 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
|
2933 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
|
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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
2938 * 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
|
2939 * <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
|
2940 * 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
|
2941 * 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
|
2942 * 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
|
2943 * 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
|
2944 * </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
|
2945 * |
92c102dd64a3
Added all 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 * @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
|
2947 * |
92c102dd64a3
Added all 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 * @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
|
2949 * <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
|
2950 * <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
|
2951 * </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
|
2952 * |
92c102dd64a3
Added all 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 * @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
|
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 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
|
2956 checkWidget (); |
75 | 2957 if (hwndHeader is null) return 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
|
2958 int bits = OS.GetWindowLong (hwndHeader, 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
|
2959 return (bits & OS.WS_VISIBLE) !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
|
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 |
92c102dd64a3
Added all 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 Point getImageSize () { |
92c102dd64a3
Added all 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 if (imageList !is null) return imageList.getImageSize (); |
92c102dd64a3
Added all 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 return new Point (0, 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
|
2965 } |
92c102dd64a3
Added all 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 |
75 | 2967 HANDLE getBottomItem () { |
2968 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 0); | |
2969 if (hItem is null) 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
|
2970 int index = 0, count = OS.SendMessage (handle, OS.TVM_GETVISIBLECOUNT, 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
|
2971 while (index < count) { |
75 | 2972 HANDLE hNextItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hItem); |
2973 if (hNextItem is null) return hItem; | |
31
92c102dd64a3
Added all 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 hItem = hNextItem; |
92c102dd64a3
Added all 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 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
|
2976 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2977 return hItem; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
2982 * 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
|
2983 * 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
|
2984 * If no <code>TreeColumn</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
|
2985 * 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
|
2986 * the fact that a single column of data may be visible in the tree. |
92c102dd64a3
Added all 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 * This occurs when the programmer uses the tree 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
|
2988 * 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
|
2989 * |
92c102dd64a3
Added all 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 * @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
|
2991 * @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
|
2992 * |
92c102dd64a3
Added all 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 * @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
|
2994 * <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
|
2995 * </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
|
2996 * @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
|
2997 * <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
|
2998 * <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
|
2999 * </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
|
3000 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
3002 * @see Tree#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
|
3003 * @see TreeColumn#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
|
3004 * @see TreeColumn#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
|
3005 * @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
|
3006 * |
92c102dd64a3
Added all 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 * @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
|
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 public TreeColumn 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
|
3010 checkWidget (); |
213 | 3011 if (!(0 <= index && index < columnCount)) error (DWT.ERROR_INVALID_RANGE); |
31
92c102dd64a3
Added all 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 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
|
3013 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3017 * If no <code>TreeColumn</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
|
3018 * 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
|
3019 * 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
|
3020 * the tree 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
|
3021 * |
92c102dd64a3
Added all 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 * @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
|
3023 * |
92c102dd64a3
Added all 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 * @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
|
3025 * <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
|
3026 * <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
|
3027 * </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
|
3028 * |
92c102dd64a3
Added all 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 * @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
|
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 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
|
3032 checkWidget (); |
213 | 3033 return 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
|
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 * 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
|
3038 * 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
|
3039 * 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
|
3040 * <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
|
3041 * 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
|
3042 * 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
|
3043 * 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
|
3044 * </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
|
3045 * 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
|
3046 * 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
|
3047 * 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
|
3048 * </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
|
3049 * |
92c102dd64a3
Added all 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 * @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
|
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 * @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
|
3053 * <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
|
3054 * <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
|
3055 * </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
|
3056 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
3058 * @see TreeColumn#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
|
3059 * @see TreeColumn#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
|
3060 * @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
|
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 * @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
|
3063 */ |
92c102dd64a3
Added all 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 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
|
3065 checkWidget (); |
213 | 3066 if (columnCount is 0) return null; |
3067 int [] order = new int [columnCount]; | |
3068 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, 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
|
3069 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
|
3070 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3072 /** |
92c102dd64a3
Added all 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 * Returns an array of <code>TreeColumn</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
|
3074 * 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
|
3075 * that they were created. If no <code>TreeColumn</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
|
3076 * 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
|
3077 * 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
|
3078 * when the programmer uses the tree 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
|
3079 * 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
|
3080 * <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
|
3081 * 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
|
3082 * 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
|
3083 * 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
|
3084 * </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
|
3085 * |
92c102dd64a3
Added all 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 * @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
|
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 * @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
|
3089 * <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
|
3090 * <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
|
3091 * </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
|
3092 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
3094 * @see Tree#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
|
3095 * @see TreeColumn#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
|
3096 * @see TreeColumn#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
|
3097 * @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
|
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 * @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
|
3100 */ |
92c102dd64a3
Added all 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 public TreeColumn [] 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
|
3102 checkWidget (); |
213 | 3103 TreeColumn [] result = new TreeColumn [columnCount]; |
3104 System.arraycopy (columns, 0, result, 0, 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
|
3105 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
|
3106 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3110 * 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
|
3111 * |
92c102dd64a3
Added all 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 * @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
|
3113 * @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
|
3114 * |
92c102dd64a3
Added all 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 * @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
|
3116 * <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
|
3117 * </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
|
3118 * @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
|
3119 * <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
|
3120 * <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
|
3121 * </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
|
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 * @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
|
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 public TreeItem 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
|
3126 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
|
3127 if (index < 0) error (DWT.ERROR_INVALID_RANGE); |
75 | 3128 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
3129 if (hFirstItem is null) error (DWT.ERROR_INVALID_RANGE); | |
3130 HANDLE hItem = findItem (hFirstItem, index); | |
3131 if (hItem is null) error (DWT.ERROR_INVALID_RANGE); | |
31
92c102dd64a3
Added all 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 return _getItem (hItem); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
75 | 3135 TreeItem getItem (NMTVCUSTOMDRAW* nmcd) { |
31
92c102dd64a3
Added all 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 * Bug in Windows. If the lParam field of TVITEM |
92c102dd64a3
Added all 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 * is changed during custom draw using TVM_SETITEM, |
92c102dd64a3
Added all 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 * the lItemlParam field of the NMTVCUSTOMDRAW struct |
92c102dd64a3
Added all 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 * is not updated until the next custom draw. 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
|
3141 * fix is to query the field from the item 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
|
3142 * of using the struct. |
92c102dd64a3
Added all 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 */ |
75 | 3144 int id = nmcd.nmcd.lItemlParam; |
31
92c102dd64a3
Added all 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 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
|
3146 if (id is -1) { |
75 | 3147 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
3149 tvItem.hItem = cast(HTREEITEM) nmcd.nmcd.dwItemSpec; |
75 | 3150 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 id = tvItem.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
|
3152 } |
92c102dd64a3
Added all 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 } |
75 | 3154 return _getItem (cast(HANDLE) nmcd.nmcd.dwItemSpec, id); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3159 * 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
|
3160 * 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
|
3161 * <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
|
3162 * 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
|
3163 * 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
|
3164 * 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
|
3165 * 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
|
3166 * 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
|
3167 * </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
|
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 * @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
|
3170 * @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
|
3171 * |
92c102dd64a3
Added all 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 * @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
|
3173 * <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
|
3174 * </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
|
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 TreeItem 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
|
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 if (point is null) error (DWT.ERROR_NULL_ARGUMENT); |
75 | 3183 TVHITTESTINFO lpht; |
3184 lpht.pt.x = point.x; | |
3185 lpht.pt.y = point.y; | |
3186 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); | |
3187 if (lpht.hItem !is null) { | |
213 | 3188 int flags = OS.TVHT_ONITEM; |
3189 if ((style & DWT.FULL_SELECTION) !is 0) { | |
3190 flags |= OS.TVHT_ONITEMRIGHT | OS.TVHT_ONITEMINDENT; | |
3191 } else { | |
3192 if (hooks (DWT.MeasureItem)) { | |
3193 lpht.flags &= ~(OS.TVHT_ONITEMICON | OS.TVHT_ONITEMLABEL); | |
3194 if (hitTestSelection ( lpht.hItem, lpht.pt.x, lpht.pt.y)) { | |
3195 lpht.flags |= OS.TVHT_ONITEMICON | OS.TVHT_ONITEMLABEL; | |
3196 } | |
3197 } | |
3198 } | |
3199 if ((lpht.flags & flags) !is 0) return _getItem (lpht.hItem); | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
3202 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3206 * that are direct item children of the receiver. 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
|
3207 * number that is returned is the number of roots 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
|
3208 * tree. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * @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
|
3211 * |
92c102dd64a3
Added all 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 * @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
|
3213 * <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
|
3214 * <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
|
3215 * </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
|
3216 */ |
92c102dd64a3
Added all 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 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
|
3218 checkWidget (); |
75 | 3219 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
3220 if (hItem 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
|
3221 return getItemCount (hItem); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3224 int getItemCount (HANDLE hItem) { |
75 | 3225 int count = 0; |
3226 auto hFirstItem = hItem; | |
31
92c102dd64a3
Added all 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 if (hItem is hFirstIndexOf) { |
92c102dd64a3
Added all 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 if (itemCount !is -1) return 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
|
3229 hFirstItem = hLastIndexOf; |
92c102dd64a3
Added all 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 count = 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
|
3231 } |
75 | 3232 while (hFirstItem !is null) { |
3233 hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hFirstItem); | |
31
92c102dd64a3
Added all 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 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
|
3235 } |
92c102dd64a3
Added all 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 if (hItem is hFirstIndexOf) itemCount = 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
|
3237 return 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
|
3238 } |
92c102dd64a3
Added all 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 * Returns 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
|
3242 * display <em>one</em> of the items in the tree. |
92c102dd64a3
Added all 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 * @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
|
3245 * |
92c102dd64a3
Added all 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 * @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
|
3247 * <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
|
3248 * <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
|
3249 * </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 */ |
92c102dd64a3
Added all 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 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
|
3252 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
|
3253 return OS.SendMessage (handle, OS.TVM_GETITEMHEIGHT, 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
|
3254 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3257 * Returns a (possibly empty) array of items contained 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
|
3258 * receiver that are direct item children of the receiver. 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
|
3259 * are the roots of the tree. |
92c102dd64a3
Added all 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 * <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
|
3261 * 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
|
3262 * 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
|
3263 * 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
|
3264 * </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
|
3265 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3266 * @return 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
|
3267 * |
92c102dd64a3
Added all 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 * @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
|
3269 * <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
|
3270 * <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
|
3271 * </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
|
3272 */ |
92c102dd64a3
Added all 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 public TreeItem [] 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
|
3274 checkWidget (); |
75 | 3275 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
3276 if (hItem is null) 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
|
3277 return getItems (hItem); |
92c102dd64a3
Added all 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 |
75 | 3280 TreeItem [] getItems (HANDLE hTreeItem) { |
3281 int count = 0; | |
3282 auto hItem = hTreeItem; | |
3283 while (hItem !is null) { | |
3284 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); | |
31
92c102dd64a3
Added all 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 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
|
3286 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3287 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
|
3288 TreeItem [] result = new TreeItem [count]; |
75 | 3289 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3290 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
3291 tvItem.hItem = cast(HTREEITEM)hTreeItem; |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. In some cases an expand or collapse 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
|
3294 * can occur from within TVM_DELETEITEM. When this happens, 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
|
3295 * being destroyed has been removed from the list of items but has 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
|
3296 * been deleted from the tree. The fix is to check for null 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
|
3297 * remove them from the 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
|
3298 */ |
75 | 3299 while (tvItem.hItem !is null) { |
3300 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); | |
31
92c102dd64a3
Added all 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 TreeItem item = _getItem (tvItem.hItem, tvItem.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
|
3302 if (item !is null) result [index++] = item; |
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:
219
diff
changeset
|
3303 tvItem.hItem = cast(HTREEITEM) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, tvItem.hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (index !is 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
|
3306 TreeItem [] newResult = new TreeItem [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
|
3307 System.arraycopy (result, 0, newResult, 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
|
3308 result = newResult; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
3311 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 * 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
|
3315 * 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
|
3316 * <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
|
3317 * 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
|
3318 * 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
|
3319 * 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
|
3320 * 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
|
3321 * </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
|
3322 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3323 * @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
|
3324 * |
92c102dd64a3
Added all 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 * @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
|
3326 * <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
|
3327 * <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
|
3328 * </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
|
3329 * |
92c102dd64a3
Added all 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 * @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
|
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 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
|
3333 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
|
3334 return linesVisible; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
75 | 3337 HANDLE getNextSelection (HANDLE hItem, TVITEM* tvItem) { |
3338 while (hItem !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
|
3339 int state = 0; |
75 | 3340 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
|
3341 tvItem.hItem = hItem; |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); |
92c102dd64a3
Added all 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 state = tvItem.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
|
3344 } 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
|
3345 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
3346 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3347 if ((state & OS.TVIS_SELECTED) !is 0) return hItem; |
75 | 3348 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
3349 auto hSelected = getNextSelection (hFirstItem, tvItem); | |
3350 if (hSelected !is null) return hSelected; | |
3351 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); | |
3352 } | |
3353 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
|
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 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3356 /** |
92c102dd64a3
Added all 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 * Returns the receiver's parent item, which must be 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
|
3358 * <code>TreeItem</code> or null when the receiver is 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
|
3359 * root. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * @return the receiver's parent 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
|
3362 * |
92c102dd64a3
Added all 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 * @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
|
3364 * <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
|
3365 * <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
|
3366 * </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
|
3367 */ |
92c102dd64a3
Added all 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 public TreeItem getParentItem () { |
92c102dd64a3
Added all 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 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
|
3370 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
|
3371 } |
92c102dd64a3
Added all 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 |
75 | 3373 int getSelection (HANDLE hItem, TVITEM* tvItem, TreeItem [] selection, int index, int count, bool bigSelection, bool all) { |
3374 while (hItem !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
|
3375 if (OS.IsWinCE || bigSelection) { |
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:
219
diff
changeset
|
3376 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); |
92c102dd64a3
Added all 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 if ((tvItem.state & OS.TVIS_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
|
3379 if (selection !is null && index < selection.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
|
3380 selection [index] = _getItem (hItem, tvItem.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
|
3381 } |
92c102dd64a3
Added all 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 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
|
3383 } |
92c102dd64a3
Added all 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 } 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
|
3385 int state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
3386 if ((state & OS.TVIS_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
|
3387 if (tvItem !is null && selection !is null && index < selection.length) { |
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:
219
diff
changeset
|
3388 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); |
92c102dd64a3
Added all 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 selection [index] = _getItem (hItem, tvItem.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
|
3391 } |
92c102dd64a3
Added all 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 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
|
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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3395 if (index is count) 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
|
3396 if (all) { |
75 | 3397 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
31
92c102dd64a3
Added all 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 ((index = getSelection (hFirstItem, tvItem, selection, index, count, bigSelection, all)) is 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
|
3399 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
|
3400 } |
75 | 3401 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
31
92c102dd64a3
Added all 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 } else { |
75 | 3403 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3404 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3405 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3406 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
|
3407 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3408 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3409 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3410 * Returns an array of <code>TreeItem</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
|
3411 * 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
|
3412 * 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
|
3413 * <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
|
3414 * 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
|
3415 * 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
|
3416 * 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
|
3417 * </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
|
3418 * @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
|
3419 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3420 * @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
|
3421 * <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
|
3422 * <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
|
3423 * </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
|
3424 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3425 public TreeItem [] 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
|
3426 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
|
3427 if ((style & DWT.SINGLE) !is 0) { |
75 | 3428 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
3429 if (hItem is null) return new TreeItem [0]; | |
3430 TVITEM tvItem; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3431 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_STATE; |
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:
219
diff
changeset
|
3432 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 3433 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3434 if ((tvItem.state & OS.TVIS_SELECTED) is 0) return new TreeItem [0]; |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3435 return [_getItem (tvItem.hItem, tvItem.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
|
3436 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3437 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
|
3438 TreeItem [] guess = new TreeItem [(style & DWT.VIRTUAL) !is 0 ? 8 : 1]; |
213 | 3439 int /*long*/ oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
3440 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3441 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 3442 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3443 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_STATE; |
75 | 3444 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
3445 count = getSelection (hItem, &tvItem, guess, 0, -1, false, 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
|
3446 } else { |
75 | 3447 TVITEM tvItem; |
3448 static if (OS.IsWinCE) { | |
3449 //tvItem = new TVITEM (); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3450 tvItem.mask = OS.TVIF_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
|
3451 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3452 for (int i=0; i<items.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
|
3453 TreeItem 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
|
3454 if (item !is null) { |
75 | 3455 HANDLE hItem = item.handle; |
3456 int state = 0; | |
3457 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
|
3458 tvItem.hItem = hItem; |
75 | 3459 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 state = tvItem.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
|
3461 } 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
|
3462 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
3463 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3464 if ((state & OS.TVIS_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
|
3465 if (count < guess.length) guess [count] = 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
|
3466 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
|
3467 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3468 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3469 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3470 } |
213 | 3471 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3472 if (count is 0) return new TreeItem [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
|
3473 if (count is guess.length) return guess; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3474 TreeItem [] result = new TreeItem [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
|
3475 if (count < guess.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
|
3476 System.arraycopy (guess, 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
|
3477 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
|
3478 } |
213 | 3479 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); |
75 | 3480 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3481 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_STATE; |
75 | 3482 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 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
|
3483 int itemCount = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
3484 bool bigSelection = result.length > itemCount / 2; |
75 | 3485 if (count !is getSelection (hItem, &tvItem, result, 0, count, bigSelection, false)) { |
3486 getSelection (hItem, &tvItem, result, 0, count, bigSelection, 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
|
3487 } |
213 | 3488 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3489 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
|
3490 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3491 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3492 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3493 * 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
|
3494 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3495 * @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
|
3496 * |
92c102dd64a3
Added all 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 * @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
|
3498 * <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
|
3499 * <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
|
3500 * </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
|
3501 */ |
92c102dd64a3
Added all 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 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
|
3503 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
|
3504 if ((style & DWT.SINGLE) !is 0) { |
75 | 3505 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
3506 if (hItem 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
|
3507 int state = 0; |
117 | 3508 static if (OS.IsWinCE) { |
75 | 3509 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.hItem = hItem; |
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_STATE; |
75 | 3512 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 state = tvItem.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
|
3514 } 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
|
3515 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
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 return (state & OS.TVIS_SELECTED) is 0 ? 0 : 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
|
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 int count = 0; |
213 | 3520 int /*long*/ oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
75 | 3521 TVITEM tvItem_; |
3522 TVITEM* tvItem = null; | |
3523 static if (OS.IsWinCE) { | |
3524 tvItem = &tvitem_; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3525 tvItem.mask = OS.TVIF_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
|
3526 } |
213 | 3527 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3528 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 3529 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 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
|
3530 count = getSelection (hItem, tvItem, null, 0, -1, false, 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
|
3531 } 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
|
3532 for (int i=0; i<items.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
|
3533 TreeItem 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
|
3534 if (item !is null) { |
75 | 3535 auto hItem = item.handle; |
3536 int state = 0; | |
3537 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
|
3538 tvItem.hItem = hItem; |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); |
92c102dd64a3
Added all 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 state = tvItem.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
|
3541 } 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
|
3542 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
3543 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3544 if ((state & OS.TVIS_SELECTED) !is 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
|
3545 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3546 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3547 } |
213 | 3548 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3549 return 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
|
3550 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3551 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3552 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3553 * 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
|
3554 * 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
|
3555 * 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
|
3556 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3557 * @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
|
3558 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3559 * @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
|
3560 * <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
|
3561 * <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
|
3562 * </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
|
3563 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3564 * @see #setSortColumn(TreeColumn) |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3565 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3566 * @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
|
3567 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3568 public TreeColumn 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
|
3569 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
|
3570 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
|
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 |
92c102dd64a3
Added all 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 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
|
3574 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
|
3575 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
|
3576 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
|
3577 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
|
3578 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
|
3579 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
|
3580 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
|
3581 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
|
3582 } 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
|
3583 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
|
3584 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
|
3585 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
|
3586 } |
92c102dd64a3
Added all 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 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
|
3588 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3592 * 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
|
3593 * 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
|
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 * @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
|
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 * @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
|
3598 * <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
|
3599 * <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
|
3600 * </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
|
3601 * |
92c102dd64a3
Added all 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 * @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
|
3603 * |
92c102dd64a3
Added all 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 * @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
|
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 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
|
3607 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
|
3608 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
|
3609 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * Returns the item which is currently at the top 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
|
3613 * This item can change when items are expanded, collapsed, scrolled |
92c102dd64a3
Added all 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 * 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
|
3615 * |
92c102dd64a3
Added all 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 * @return the item at the top 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
|
3617 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3618 * @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
|
3619 * <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
|
3620 * <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
|
3621 * </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
|
3622 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3623 * @since 2.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
|
3624 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3625 public TreeItem getTopItem () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3626 checkWidget (); |
75 | 3627 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 0); |
3628 return hItem !is null ? _getItem (hItem) : 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
|
3629 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3630 |
213 | 3631 bool hitTestSelection (HANDLE hItem, int x, int y) { |
3632 if (hItem is null) return false; | |
3633 TreeItem item = _getItem (hItem); | |
3634 if (item is null) return false; | |
3635 if (!hooks (DWT.MeasureItem)) return false; | |
3636 bool result = false; | |
3637 | |
3638 //BUG? - moved columns, only hittest first column | |
3639 //BUG? - check drag detect | |
3640 int [] order = new int [1], index = new int [1]; | |
3641 | |
3642 auto hDC = OS.GetDC (handle); | |
3643 HFONT oldFont, newFont = cast(HFONT)OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
3644 if (newFont !is null) oldFont = OS.SelectObject (hDC, newFont); | |
3645 auto hFont = item.fontHandle (order [index [0]]); | |
3646 if (hFont !is cast(HFONT)-1) hFont = OS.SelectObject (hDC, hFont); | |
3647 Event event = sendMeasureItemEvent (item, order [index [0]], hDC); | |
3648 if (event.getBounds ().contains (x, y)) result = true; | |
3649 if (newFont !is null) OS.SelectObject (hDC, oldFont); | |
3650 OS.ReleaseDC (handle, hDC); | |
3651 // if (isDisposed () || item.isDisposed ()) return false; | |
3652 return result; | |
3653 } | |
3654 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3655 int imageIndex (Image image, 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
|
3656 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
|
3657 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
|
3658 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
|
3659 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
|
3660 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3661 int imageIndex = 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
|
3662 if (imageIndex is -1) imageIndex = imageList.add (image); |
75 | 3663 if (hwndHeader is null || OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, 0, 0) is index) { |
213 | 3664 /* |
3665 * Feature in Windows. When setting the same image list multiple | |
3666 * times, Windows does work making this operation slow. The fix | |
3667 * is to test for the same image list before setting the new one. | |
3668 */ | |
75 | 3669 auto hImageList = imageList.getHandle (); |
3670 auto hOldImageList = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_NORMAL, 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
|
3671 if (hOldImageList !is 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
|
3672 OS.SendMessage (handle, OS.TVM_SETIMAGELIST, OS.TVSIL_NORMAL, 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
|
3673 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 return imageIndex; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
3680 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
|
3681 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
|
3682 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
|
3683 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
|
3684 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
|
3685 if (index is -1) index = headerImageList.add (image); |
75 | 3686 auto hImageList = headerImageList.getHandle (); |
3687 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
|
3688 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
|
3689 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3690 updateScrollBar (); |
92c102dd64a3
Added all 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 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
|
3692 } |
92c102dd64a3
Added all 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 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
|
3694 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
|
3695 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
|
3696 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3699 * 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
|
3700 * (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
|
3701 * 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
|
3702 * 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
|
3703 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3704 * @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
|
3705 * @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
|
3706 * |
92c102dd64a3
Added all 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 * @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
|
3708 * <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
|
3709 * </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
|
3710 * @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
|
3711 * <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
|
3712 * <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
|
3713 * </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
|
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 * @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
|
3716 */ |
92c102dd64a3
Added all 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 public int indexOf (TreeColumn 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
|
3718 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
|
3719 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
|
3720 if (column.isDisposed()) error(DWT.ERROR_INVALID_ARGUMENT); |
213 | 3721 for (int i=0; i<columnCount; 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
|
3722 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
|
3723 } |
92c102dd64a3
Added all 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 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
|
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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
3729 * (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
|
3730 * 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
|
3731 * 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
|
3732 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3733 * @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
|
3734 * @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
|
3735 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3736 * @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
|
3737 * <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
|
3738 * <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
|
3739 * </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
|
3740 * @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
|
3741 * <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
|
3742 * <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
|
3743 * </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
|
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 * @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
|
3746 */ |
92c102dd64a3
Added all 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 public int indexOf (TreeItem 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
|
3748 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
|
3749 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
|
3750 if (item.isDisposed()) error(DWT.ERROR_INVALID_ARGUMENT); |
75 | 3751 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
3752 return hItem is null ? -1 : findIndex (hItem, item.handle); | |
3753 } | |
3754 | |
213 | 3755 bool isCustomToolTip () { |
3756 return hooks (DWT.MeasureItem); | |
3757 } | |
3758 | |
75 | 3759 bool isItemSelected (NMTVCUSTOMDRAW* nmcd) { |
31
92c102dd64a3
Added all 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 bool selected = 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
|
3761 if (OS.IsWindowEnabled (handle)) { |
75 | 3762 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; |
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:
219
diff
changeset
|
3764 tvItem.hItem = cast(HTREEITEM)nmcd.nmcd.dwItemSpec; |
75 | 3765 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 ((tvItem.state & (OS.TVIS_SELECTED | OS.TVIS_DROPHILITED)) !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
|
3767 selected = 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
|
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 * Feature in Windows. When the mouse is pressed 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
|
3770 * selection is first drawn for a tree, the previously |
92c102dd64a3
Added all 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 * selected item is redrawn but the the TVIS_SELECTED 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
|
3772 * are not cleared. When the user moves the mouse slightly |
92c102dd64a3
Added all 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 * and a drag and drop operation is not started, 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
|
3774 * drawn again and this time with TVIS_SELECTED 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
|
3775 * This means that an item that contains colored cells 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
|
3776 * not draw with the correct background until 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
|
3777 * moved. The fix is to test for the selection colors 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
|
3778 * guess that the item is not 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
|
3779 * |
92c102dd64a3
Added all 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 * NOTE: This code does not work when the 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
|
3781 * background of the tree are set to the selection colors |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3782 * but this does not happen in a regular application. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (handle is OS.GetFocus ()) { |
75 | 3785 if (OS.GetTextColor (nmcd.nmcd.hdc) !is OS.GetSysColor (OS.COLOR_HIGHLIGHTTEXT)) { |
31
92c102dd64a3
Added all 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 selected = 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
|
3787 } else { |
75 | 3788 if (OS.GetBkColor (nmcd.nmcd.hdc) !is OS.GetSysColor (OS.COLOR_HIGHLIGHT)) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3789 selected = 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
|
3790 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3791 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3792 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3793 } else { |
75 | 3794 if (nmcd.nmcd.dwDrawStage is OS.CDDS_ITEMPOSTPAINT) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3795 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3796 * Feature in Windows. When the mouse is pressed 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
|
3797 * selection is first drawn for a tree, the item is 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
|
3798 * selected, but the TVIS_SELECTED bits for the item 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
|
3799 * not set. When the user moves the mouse slightly 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
|
3800 * a drag and drop operation is not started, 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
|
3801 * drawn again and this time TVIS_SELECTED is set. 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
|
3802 * means that an item that is in a tree that has the 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
|
3803 * TVS_FULLROWSELECT and that also contains colored cells |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3804 * will not draw the entire row selected until 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
|
3805 * moves the mouse. The fix is to test for 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
|
3806 * colors and guess that 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
|
3807 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3808 * NOTE: This code does not work when the 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
|
3809 * background of the tree are set to the selection colors |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3810 * but this does not happen in a regular application. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3811 */ |
75 | 3812 if (OS.GetTextColor (nmcd.nmcd.hdc) is OS.GetSysColor (OS.COLOR_HIGHLIGHTTEXT)) { |
3813 if (OS.GetBkColor (nmcd.nmcd.hdc) is OS.GetSysColor (OS.COLOR_HIGHLIGHT)) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3814 selected = 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
|
3815 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3816 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3818 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3819 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3820 return 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
|
3821 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3822 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3823 void redrawSelection () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3824 if ((style & DWT.SINGLE) !is 0) { |
75 | 3825 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
3826 if (hItem !is null) { | |
3827 RECT rect; | |
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:
219
diff
changeset
|
3828 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { |
213 | 3829 OS.InvalidateRect (handle, &rect, true); |
3830 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } else { |
75 | 3833 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 0); |
3834 if (hItem !is null) { | |
3835 TVITEM tvItem; | |
117 | 3836 static if (OS.IsWinCE) { |
75 | 3837 //tvItem = new TVITEM (); |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_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
|
3839 } |
75 | 3840 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
|
3841 int index = 0, count = OS.SendMessage (handle, OS.TVM_GETVISIBLECOUNT, 0, 0); |
75 | 3842 while (index < count && hItem !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
|
3843 int state = 0; |
75 | 3844 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
|
3845 tvItem.hItem = hItem; |
75 | 3846 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 state = tvItem.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
|
3848 } 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
|
3849 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
3850 } |
92c102dd64a3
Added all 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 if ((state & OS.TVIS_SELECTED) !is 0) { |
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:
219
diff
changeset
|
3852 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { |
213 | 3853 OS.InvalidateRect (handle, &rect, true); |
3854 } | |
31
92c102dd64a3
Added all 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 } |
75 | 3856 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hItem); |
31
92c102dd64a3
Added all 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 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
|
3858 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
3863 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
|
3864 super.register (); |
75 | 3865 if (hwndParent !is null) display.addControl (hwndParent, this); |
3866 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
|
3867 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3869 void releaseItem (HANDLE hItem, TVITEM* tvItem, bool release) { |
75 | 3870 if (hItem is hAnchor) hAnchor = null; |
3871 if (hItem is hInsert) hInsert = null; | |
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:
219
diff
changeset
|
3872 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem) !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
|
3874 if (tvItem.lParam !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
|
3875 if (tvItem.lParam < lastID) lastID = tvItem.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
|
3876 if (release) { |
92c102dd64a3
Added all 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 TreeItem item = items [tvItem.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
|
3878 if (item !is null) 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
|
3879 } |
92c102dd64a3
Added all 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 items [tvItem.lParam] = 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
|
3881 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
3885 void releaseItems (HANDLE hItem, TVITEM* tvItem) { |
75 | 3886 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
3887 while (hItem !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
|
3888 releaseItems (hItem, tvItem); |
92c102dd64a3
Added all 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 releaseItem (hItem, tvItem, true); |
75 | 3890 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
3894 override void releaseHandle () { |
31
92c102dd64a3
Added all 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 super.releaseHandle (); |
75 | 3896 hwndParent = hwndHeader = 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
|
3897 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3898 |
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
|
3899 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
|
3900 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
|
3901 for (int i=0; i<items.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
|
3902 TreeItem 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
|
3903 if (item !is null && !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
|
3904 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
|
3905 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
3908 } |
92c102dd64a3
Added all 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 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
|
3910 for (int i=0; i<columns.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
|
3911 TreeColumn 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
|
3912 if (column !is null && !column.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
|
3913 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
|
3914 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
3917 } |
92c102dd64a3
Added all 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 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
|
3919 } |
92c102dd64a3
Added all 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 |
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
|
3921 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
|
3922 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
|
3923 /* |
92c102dd64a3
Added all 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 * Feature in Windows. For some reason, when TVM_GETIMAGELIST |
92c102dd64a3
Added all 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 * or TVM_SETIMAGELIST is sent, the tree issues NM_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
|
3926 * messages. This behavior is unwanted when the tree is being |
92c102dd64a3
Added all 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 * disposed. The fix is to ignore NM_CUSTOMDRAW messages 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
|
3928 * clearing the custom draw flag. |
92c102dd64a3
Added all 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 * NOTE: This only happens on Windows 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
|
3931 */ |
92c102dd64a3
Added all 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 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
|
3933 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
|
3934 OS.SendMessage (handle, OS.TVM_SETIMAGELIST, OS.TVSIL_NORMAL, 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
|
3935 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
|
3936 } |
92c102dd64a3
Added all 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 if (headerImageList !is null) { |
75 | 3938 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
|
3939 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
|
3940 } |
92c102dd64a3
Added all 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 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
|
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 imageList = headerImageList = null; |
75 | 3944 auto hStateList = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_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
|
3945 OS.SendMessage (handle, OS.TVM_SETIMAGELIST, OS.TVSIL_STATE, 0); |
75 | 3946 if (hStateList !is null) OS.ImageList_Destroy (hStateList); |
3947 if (itemToolTipHandle !is null) OS.DestroyWindow (itemToolTipHandle); | |
3948 if (headerToolTipHandle !is null) OS.DestroyWindow (headerToolTipHandle); | |
3949 itemToolTipHandle = 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
|
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 * 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
|
3954 * |
92c102dd64a3
Added all 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 * @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
|
3956 * <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
|
3957 * <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
|
3958 * </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
|
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 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
|
3961 checkWidget (); |
75 | 3962 hFirstIndexOf = hLastIndexOf = 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
|
3963 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
|
3964 for (int i=0; i<items.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
|
3965 TreeItem 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
|
3966 if (item !is null && !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
|
3967 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
|
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 } |
92c102dd64a3
Added all 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 ignoreDeselect = ignoreSelect = 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
|
3971 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
|
3972 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
|
3973 shrink = ignoreShrink = true; |
213 | 3974 int /*long*/ result = OS.SendMessage (handle, OS.TVM_DELETEITEM, 0, OS.TVI_ROOT); |
31
92c102dd64a3
Added all 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 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
|
3976 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
|
3977 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
|
3978 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
|
3979 } |
92c102dd64a3
Added all 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 ignoreDeselect = 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
|
3981 if (result 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
|
3982 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
|
3983 OS.SendMessage (handle, OS.TVM_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
|
3984 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
|
3985 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3986 imageList = null; |
75 | 3987 if (hwndParent is null && !linesVisible) { |
31
92c102dd64a3
Added all 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 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
|
3989 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
|
3990 } |
92c102dd64a3
Added all 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 } |
75 | 3992 hAnchor = hInsert = hFirstIndexOf = hLastIndexOf = 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
|
3993 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
|
3994 items = new TreeItem [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
|
3995 scrollWidth = 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
|
3996 setScrollWidth (); |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3999 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4000 /** |
92c102dd64a3
Added all 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 * 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
|
4002 * 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
|
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 * @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
|
4005 * |
92c102dd64a3
Added all 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 * @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
|
4007 * <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
|
4008 * </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
|
4009 * @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
|
4010 * <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
|
4011 * <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
|
4012 * </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
|
4013 * |
92c102dd64a3
Added all 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 * @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
|
4015 * @see #addSelectionListener |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 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
|
4018 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
|
4019 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
|
4020 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
|
4021 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
|
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 * 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
|
4026 * be notified when items in the receiver are expanded or collapsed. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * @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
|
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 * @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
|
4031 * <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
|
4032 * </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
|
4033 * @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
|
4034 * <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
|
4035 * <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
|
4036 * </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
|
4037 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4038 * @see TreeListener |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4039 * @see #addTreeListener |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4040 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4041 public void removeTreeListener(TreeListener 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
|
4042 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
|
4043 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
|
4044 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
|
4045 eventTable.unhook (DWT.Expand, 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
|
4046 eventTable.unhook (DWT.Collapse, 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
|
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 * Display a mark indicating the point at which an item will be 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
|
4051 * The drop insert item has a visual hint to show where a dragged 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
|
4052 * will be inserted when dropped on the tree. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4054 * @param item the insert item. Null will clear the insertion 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
|
4055 * @param before true places the insert mark above 'item'. false places |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4056 * the insert mark below '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
|
4057 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4058 * @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
|
4059 * <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
|
4060 * </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
|
4061 * @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
|
4062 * <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
|
4063 * <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
|
4064 * </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
|
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 public void setInsertMark (TreeItem item, bool before) { |
92c102dd64a3
Added all 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 checkWidget (); |
75 | 4068 HANDLE hItem; |
31
92c102dd64a3
Added all 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 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
|
4070 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
|
4071 hItem = item.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
|
4072 } |
92c102dd64a3
Added all 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 hInsert = hItem; |
92c102dd64a3
Added all 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 insertAfter = !before; |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_SETINSERTMARK, insertAfter ? 1 : 0, hInsert); |
92c102dd64a3
Added all 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 * Sets the number of root-level 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
|
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 * @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
|
4082 * |
92c102dd64a3
Added all 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 * @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
|
4084 * <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
|
4085 * <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
|
4086 * </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
|
4087 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4088 * @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
|
4089 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4090 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
|
4091 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
|
4092 count = Math.max (0, count); |
75 | 4093 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
4094 setItemCount (count, cast(HANDLE) OS.TVGN_ROOT, hItem); | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4097 void setItemCount (int count, HANDLE hParent, HANDLE hItem) { |
31
92c102dd64a3
Added all 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 bool 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
|
4099 if (OS.SendMessage (handle, OS.TVM_GETCOUNT, 0, 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
|
4100 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
|
4101 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
|
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 int itemCount = 0; |
75 | 4104 while (hItem !is null && itemCount < count) { |
4105 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4106 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
|
4107 } |
213 | 4108 bool expanded = false; |
75 | 4109 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4110 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
213 | 4111 if (!redraw && (style & DWT.VIRTUAL) !is 0) { |
4112 if (OS.IsWinCE) { | |
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:
219
diff
changeset
|
4113 tvItem.hItem = cast(HTREEITEM)hParent; |
213 | 4114 tvItem.mask = OS.TVIF_STATE; |
4115 OS.SendMessage (handle, OS.TVM_GETITEM, 0, cast(int)&tvItem); | |
4116 expanded = (tvItem.state & OS.TVIS_EXPANDED) !is 0; | |
4117 } else { | |
4118 /* | |
4119 * Bug in Windows. Despite the fact that TVM_GETITEMSTATE claims | |
4120 * to return only the bits specified by the stateMask, when called | |
4121 * with TVIS_EXPANDED, the entire state is returned. The fix is | |
4122 * to explicitly check for the TVIS_EXPANDED bit. | |
4123 */ | |
4124 int state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hParent, OS.TVIS_EXPANDED); | |
4125 expanded = (state & OS.TVIS_EXPANDED) !is 0; | |
4126 } | |
4127 } | |
75 | 4128 while (hItem !is null) { |
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:
219
diff
changeset
|
4129 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 4130 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
4131 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); | |
31
92c102dd64a3
Added all 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 TreeItem item = tvItem.lParam !is -1 ? items [tvItem.lParam] : 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
|
4133 if (item !is null && !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
|
4134 item.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
|
4135 } else { |
75 | 4136 releaseItem (tvItem.hItem, &tvItem, 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
|
4137 destroyItem (null, tvItem.hItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4138 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4140 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
|
4141 for (int i=itemCount; i<count; i++) { |
213 | 4142 if (expanded) ignoreShrink = true; |
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:
219
diff
changeset
|
4143 createItem (null, hParent, cast(HTREEITEM) OS.TVI_LAST, null); |
213 | 4144 if (expanded) ignoreShrink = 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
|
4145 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4146 } 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
|
4147 shrink = 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
|
4148 int extra = 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
|
4149 TreeItem [] newItems = new TreeItem [items.length + 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
|
4150 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
|
4151 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
|
4152 for (int i=itemCount; i<count; i++) { |
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:
219
diff
changeset
|
4153 new TreeItem (this, DWT.NONE, hParent, cast(HTREEITEM) OS.TVI_LAST, 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
|
4154 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4156 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
|
4157 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
|
4158 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
|
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 } |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4164 * display <em>one</em> of the items in the tree. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * @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
|
4167 * |
92c102dd64a3
Added all 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 * @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
|
4169 * <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
|
4170 * <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
|
4171 * </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
|
4172 * |
92c102dd64a3
Added all 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 * @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
|
4174 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4175 /*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
|
4176 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
|
4177 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
|
4178 OS.SendMessage (handle, OS.TVM_SETITEMHEIGHT, itemHeight, 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
|
4179 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4183 * 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
|
4184 * <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
|
4185 * 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
|
4186 * 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
|
4187 * 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
|
4188 * </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
|
4189 * |
92c102dd64a3
Added all 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 * @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
|
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 * @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
|
4193 * <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
|
4194 * <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
|
4195 * </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
|
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 * @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
|
4198 */ |
92c102dd64a3
Added all 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 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
|
4200 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
|
4201 if (linesVisible is show) 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
|
4202 linesVisible = show; |
75 | 4203 if (hwndParent is null && linesVisible) customDraw = 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
|
4204 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
|
4205 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4207 override HWND scrolledHandle () { |
75 | 4208 if (hwndHeader is null) return handle; |
213 | 4209 return columnCount is 0 && scrollWidth is 0 ? handle : hwndParent; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4210 } |
92c102dd64a3
Added all 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 |
75 | 4212 void select (HANDLE hItem, TVITEM* tvItem) { |
4213 while (hItem !is null) { | |
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:
219
diff
changeset
|
4214 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); |
75 | 4216 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); |
31
92c102dd64a3
Added all 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 select (hFirstItem, tvItem); |
75 | 4218 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
213 | 4223 * Selects an item in the receiver. If the item was already |
4224 * selected, it remains selected. | |
4225 * | |
4226 * @param item the item to be selected | |
4227 * | |
4228 * @exception IllegalArgumentException <ul> | |
4229 * <li>ERROR_NULL_ARGUMENT - if the item is null</li> | |
4230 * <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li> | |
4231 * </ul> | |
4232 * @exception DWTException <ul> | |
4233 * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> | |
4234 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> | |
4235 * </ul> | |
4236 * | |
4237 * @since 3.4 | |
4238 */ | |
4239 public void select (TreeItem item) { | |
4240 checkWidget (); | |
4241 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); | |
4242 if (item.isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT); | |
4243 if ((style & DWT.SINGLE) !is 0) { | |
4244 auto hItem = item.handle; | |
4245 int state = 0; | |
4246 static if (OS.IsWinCE) { | |
4247 TVITEM tvItem; | |
4248 tvItem.hItem = hItem; | |
4249 tvItem.mask = OS.TVIF_STATE; | |
4250 OS.SendMessage (handle, OS.TVM_GETITEM, 0, cast(int)&tvItem); | |
4251 state = tvItem.state; | |
4252 } else { | |
4253 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, cast(int)&hItem, OS.TVIS_SELECTED); | |
4254 } | |
4255 if ((state & OS.TVIS_SELECTED) !is 0) return; | |
4256 /* | |
4257 * Feature in Windows. When an item is selected with | |
4258 * TVM_SELECTITEM and TVGN_CARET, the tree expands and | |
4259 * scrolls to show the new selected item. Unfortunately, | |
4260 * there is no other way in Windows to set the focus | |
4261 * and select an item. The fix is to save the current | |
4262 * scroll bar positions, turn off redraw, select the item, | |
4263 * then scroll back to the original position and redraw | |
4264 * the entire tree. | |
4265 */ | |
4266 SCROLLINFO* hInfo = null; | |
4267 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
4268 if ((bits & (OS.TVS_NOHSCROLL | OS.TVS_NOSCROLL)) is 0) { | |
4269 hInfo = new SCROLLINFO (); | |
4270 hInfo.cbSize = SCROLLINFO.sizeof; | |
4271 hInfo.fMask = OS.SIF_ALL; | |
4272 OS.GetScrollInfo (handle, OS.SB_HORZ, hInfo); | |
4273 } | |
4274 SCROLLINFO vInfo; | |
4275 vInfo.cbSize = SCROLLINFO.sizeof; | |
4276 vInfo.fMask = OS.SIF_ALL; | |
4277 OS.GetScrollInfo (handle, OS.SB_VERT, &vInfo); | |
4278 bool redraw = drawCount is 0 && OS.IsWindowVisible (handle); | |
4279 if (redraw) { | |
4280 OS.UpdateWindow (handle); | |
4281 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 0, 0); | |
4282 } | |
4283 setSelection (item); | |
4284 if (hInfo !is null) { | |
4285 int /*long*/ hThumb = OS.MAKELPARAM (OS.SB_THUMBPOSITION, hInfo.nPos); | |
4286 OS.SendMessage (handle, OS.WM_HSCROLL, hThumb, 0); | |
4287 } | |
4288 int /*long*/ vThumb = OS.MAKELPARAM (OS.SB_THUMBPOSITION, vInfo.nPos); | |
4289 OS.SendMessage (handle, OS.WM_VSCROLL, vThumb, 0); | |
4290 if (redraw) { | |
4291 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); | |
4292 OS.InvalidateRect (handle, null, true); | |
4293 if ((style & DWT.DOUBLE_BUFFERED) is 0) { | |
4294 int oldStyle = style; | |
4295 style |= DWT.DOUBLE_BUFFERED; | |
4296 OS.UpdateWindow (handle); | |
4297 style = oldStyle; | |
4298 } | |
4299 } | |
4300 return; | |
4301 } | |
4302 TVITEM tvItem; | |
4303 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; | |
4304 tvItem.stateMask = OS.TVIS_SELECTED; | |
4305 tvItem.state = OS.TVIS_SELECTED; | |
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:
219
diff
changeset
|
4306 tvItem.hItem = cast(HTREEITEM)item.handle; |
213 | 4307 OS.SendMessage (handle, OS.TVM_SETITEM, 0, cast(int)&tvItem); |
4308 } | |
4309 | |
4310 /** | |
31
92c102dd64a3
Added all 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 * 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
|
4312 * <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
|
4313 * 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
|
4314 * </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
|
4315 * |
92c102dd64a3
Added all 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 * @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
|
4317 * <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
|
4318 * <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
|
4319 * </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
|
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 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
|
4322 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
|
4323 if ((style & DWT.SINGLE) !is 0) return; |
75 | 4324 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
4326 tvItem.state = OS.TVIS_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
|
4327 tvItem.stateMask = OS.TVIS_SELECTED; |
213 | 4328 int /*long*/ oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
4329 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
31
92c102dd64a3
Added all 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 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 4331 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
4332 select (hItem, &tvItem); | |
31
92c102dd64a3
Added all 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 } 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
|
4334 for (int i=0; i<items.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
|
4335 TreeItem 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
|
4336 if (item !is null) { |
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:
219
diff
changeset
|
4337 tvItem.hItem = cast(HTREEITEM)item.handle; |
75 | 4338 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 4342 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
4343 } | |
4344 | |
4345 Event sendEraseItemEvent (TreeItem item, NMTTCUSTOMDRAW* nmcd, int column, RECT* cellRect) { | |
4346 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
4347 RECT* insetRect = toolTipInset (cellRect); | |
4348 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); | |
4349 GCData data = new GCData (); | |
4350 data.device = display; | |
4351 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); | |
4352 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
4353 data.font = item.getFont (column); | |
4354 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); | |
4355 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
4356 Event event = new Event (); | |
4357 event.item = item; | |
4358 event.index = column; | |
4359 event.gc = gc; | |
4360 event.detail |= DWT.FOREGROUND; | |
4361 event.x = cellRect.left; | |
4362 event.y = cellRect.top; | |
4363 event.width = cellRect.right - cellRect.left; | |
4364 event.height = cellRect.bottom - cellRect.top; | |
4365 //gc.setClipping (event.x, event.y, event.width, event.height); | |
4366 sendEvent (DWT.EraseItem, event); | |
4367 event.gc = null; | |
4368 //int newTextClr = data.foreground; | |
4369 gc.dispose (); | |
4370 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
4371 return event; | |
4372 } | |
4373 | |
4374 Event sendMeasureItemEvent (TreeItem item, int index, HDC hDC) { | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
4375 RECT* itemRect = item.getBounds (index, true, true, false, false, false, hDC); |
213 | 4376 int nSavedDC = OS.SaveDC (hDC); |
4377 GCData data = new GCData (); | |
4378 data.device = display; | |
4379 data.font = item.getFont (index); | |
4380 GC gc = GC.win32_new (hDC, data); | |
4381 Event event = new Event (); | |
4382 event.item = item; | |
4383 event.gc = gc; | |
4384 event.index = index; | |
4385 event.x = itemRect.left; | |
4386 event.y = itemRect.top; | |
4387 event.width = itemRect.right - itemRect.left; | |
4388 event.height = itemRect.bottom - itemRect.top; | |
4389 sendEvent (DWT.MeasureItem, event); | |
4390 event.gc = null; | |
4391 gc.dispose (); | |
4392 OS.RestoreDC (hDC, nSavedDC); | |
4393 if (isDisposed () || item.isDisposed ()) return null; | |
4394 if (hwndHeader !is null) { | |
4395 if (columnCount is 0) { | |
4396 if (event.x + event.width > scrollWidth) { | |
4397 setScrollWidth (scrollWidth = event.x + event.width); | |
4398 } | |
4399 } | |
4400 } | |
4401 if (event.height > getItemHeight ()) setItemHeight (event.height); | |
4402 return event; | |
4403 } | |
4404 | |
4405 Event sendPaintItemEvent (TreeItem item, NMTTCUSTOMDRAW* nmcd, int column, RECT* itemRect) { | |
4406 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
4407 RECT* insetRect = toolTipInset (itemRect); | |
4408 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); | |
4409 GCData data = new GCData (); | |
4410 data.device = display; | |
4411 data.font = item.getFont (column); | |
4412 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); | |
4413 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
4414 data.uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); | |
4415 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
4416 Event event = new Event (); | |
4417 event.item = item; | |
4418 event.index = column; | |
4419 event.gc = gc; | |
4420 event.detail |= DWT.FOREGROUND; | |
4421 event.x = itemRect.left; | |
4422 event.y = itemRect.top; | |
4423 event.width = itemRect.right - itemRect.left; | |
4424 event.height = itemRect.bottom - itemRect.top; | |
4425 //gc.setClipping (cellRect.left, cellRect.top, cellWidth, cellHeight); | |
4426 sendEvent (DWT.PaintItem, event); | |
4427 event.gc = null; | |
4428 gc.dispose (); | |
4429 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
4430 return event; | |
31
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4433 override 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
|
4434 super.setBackgroundImage (hBitmap); |
75 | 4435 if (hBitmap !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
|
4436 /* |
92c102dd64a3
Added all 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 * Feature in Windows. If TVM_SETBKCOLOR is 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
|
4438 * used to set the background color of a tree, 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
|
4439 * background color of the lines and the plus/minus |
92c102dd64a3
Added all 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 * will be drawn using the default background 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
|
4441 * not the HBRUSH returned from WM_CTLCOLOR. 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
|
4442 * is to set the background color to the default (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
|
4443 * it is already the default) to make Windows use 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
|
4444 * brush. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (OS.SendMessage (handle, OS.TVM_GETBKCOLOR, 0, 0) 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
|
4447 OS.SendMessage (handle, OS.TVM_SETBKCOLOR, 0, -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
|
4448 } |
92c102dd64a3
Added all 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 _setBackgroundPixel (-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
|
4450 } 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
|
4451 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
|
4452 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
|
4453 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
|
4454 setBackgroundPixel (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
|
4455 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
4459 * TVS_FULLROWSELECT, the background color 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
|
4460 * entire row is filled when an item 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
|
4461 * drawing on top of the background image. 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
|
4462 * is to clear TVS_FULLROWSELECT when a 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
|
4463 * image 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
|
4464 */ |
92c102dd64a3
Added all 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 updateFullSelection (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4468 override void setBackgroundPixel (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
|
4469 Control control = findImageControl (); |
92c102dd64a3
Added all 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 if (control !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
|
4471 setBackgroundImage (control.backgroundImage); |
92c102dd64a3
Added all 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 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
|
4473 } |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When a tree is given a background 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
|
4476 * using TVM_SETBKCOLOR and the tree is disabled, 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
|
4477 * the tree using the background color rather than the 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
|
4478 * colors. This is different from the table which draws grayed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4479 * The fix is to set the default background color while the tree |
92c102dd64a3
Added all 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 * is disabled and restore it when enabled. |
92c102dd64a3
Added all 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 if (OS.IsWindowEnabled (handle)) _setBackgroundPixel (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
|
4483 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the tree has the 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
|
4486 * TVS_FULLROWSELECT, the background color 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
|
4487 * entire row is filled when an item 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
|
4488 * drawing on top of the background image. 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
|
4489 * is to restore TVS_FULLROWSELECT when a 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
|
4490 * color 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
|
4491 */ |
92c102dd64a3
Added all 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 updateFullSelection (); |
92c102dd64a3
Added all 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 |
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
|
4495 override void setCursor () { |
31
92c102dd64a3
Added all 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 * Bug in Windows. Under certain circumstances, when WM_SETCURSOR |
92c102dd64a3
Added all 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 * is sent from SendMessage(), Windows GP's in the window proc 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
|
4499 * the tree. The fix is to avoid calling the tree window proc 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
|
4500 * set the cursor for the tree outside of WM_SETCURSOR. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * NOTE: This code assumes that the default cursor for the tree |
92c102dd64a3
Added all 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 * is IDC_ARROW. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 Cursor cursor = findCursor (); |
75 | 4506 auto hCursor = cursor is null ? OS.LoadCursor (null, cast(TCHAR*) OS.IDC_ARROW) : cursor.handle; |
31
92c102dd64a3
Added all 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 OS.SetCursor (hCursor); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4512 * 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
|
4513 * 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
|
4514 * 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
|
4515 * |
92c102dd64a3
Added all 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 * @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
|
4517 * |
92c102dd64a3
Added all 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 * @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
|
4519 * <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
|
4520 * <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
|
4521 * </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
|
4522 * @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
|
4523 * <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
|
4524 * <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
|
4525 * </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
|
4526 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
4528 * @see TreeColumn#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
|
4529 * @see TreeColumn#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
|
4530 * @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
|
4531 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4532 * @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
|
4533 */ |
92c102dd64a3
Added all 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 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
|
4535 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
|
4536 if (order is null) error (DWT.ERROR_NULL_ARGUMENT); |
213 | 4537 if (columnCount 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
|
4538 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
|
4539 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
|
4540 } |
213 | 4541 if (order.length !is columnCount) error (DWT.ERROR_INVALID_ARGUMENT); |
4542 int [] oldOrder = new int [columnCount]; | |
4543 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, 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
|
4544 bool reorder = false; |
213 | 4545 bool [] seen = new bool [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
|
4546 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
|
4547 int index = order [i]; |
213 | 4548 if (index < 0 || index >= columnCount) error (DWT.ERROR_INVALID_RANGE); |
31
92c102dd64a3
Added all 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 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
|
4550 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
|
4551 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
|
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 if (reorder) { |
213 | 4554 RECT [] oldRects = new RECT [columnCount]; |
4555 for (int i=0; i<columnCount; i++) { | |
75 | 4556 //oldRects [i] = new RECT (); |
4557 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, i, & oldRects [i]); | |
4558 } | |
4559 OS.SendMessage (hwndHeader, OS.HDM_SETORDERARRAY, 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
|
4560 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
|
4561 updateImageList (); |
213 | 4562 TreeColumn [] newColumns = new TreeColumn [columnCount]; |
4563 System.arraycopy (columns, 0, newColumns, 0, columnCount); | |
75 | 4564 RECT newRect; |
213 | 4565 for (int i=0; i<columnCount; 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
|
4566 TreeColumn 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
|
4567 if (!column.isDisposed ()) { |
75 | 4568 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
|
4569 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
|
4570 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
|
4571 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
|
4572 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void setCheckboxImageList () { |
92c102dd64a3
Added all 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 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
|
4580 int count = 5, flags = 0; |
117 | 4581 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
|
4582 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
|
4583 } 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
|
4584 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
|
4585 flags |= OS.ILC_COLOR32; |
92c102dd64a3
Added all 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 } else { |
75 | 4587 auto hDC = OS.GetDC (handle); |
31
92c102dd64a3
Added all 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 int bits = OS.GetDeviceCaps (hDC, OS.BITSPIXEL); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4589 int planes = OS.GetDeviceCaps (hDC, OS.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
|
4590 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
|
4591 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
|
4592 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
|
4593 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
|
4594 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
|
4595 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
|
4596 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
|
4597 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
|
4598 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
|
4599 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4600 flags |= OS.ILC_MASK; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4601 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4603 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
|
4604 int height = OS.SendMessage (handle, OS.TVM_GETITEMHEIGHT, 0, 0), width = height; |
75 | 4605 auto hStateList = OS.ImageList_Create (width, height, flags, count, count); |
4606 auto hDC = OS.GetDC (handle); | |
4607 auto memDC = OS.CreateCompatibleDC (hDC); | |
4608 auto hBitmap = OS.CreateCompatibleBitmap (hDC, width * count, height); | |
4609 auto hOldBitmap = OS.SelectObject (memDC, hBitmap); | |
4610 RECT rect; | |
4611 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
|
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 * NOTE: DrawFrameControl() draws a black and white |
92c102dd64a3
Added all 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 * mask when not drawing a push button. In order 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
|
4615 * make the box surrounding the check mark 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
|
4616 * fill it with a color that is neither black or white. |
92c102dd64a3
Added all 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 int clrBackground = 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
|
4619 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
|
4620 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
|
4621 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
|
4622 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
|
4623 } 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
|
4624 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
|
4625 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
|
4626 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
|
4627 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4628 } |
75 | 4629 auto hBrush = OS.CreateSolidBrush (clrBackground); |
4630 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
|
4631 OS.DeleteObject (hBrush); |
75 | 4632 auto oldFont = OS.SelectObject (hDC, defaultFont ()); |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4633 TEXTMETRIC tm; |
75 | 4634 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
|
4635 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
|
4636 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
|
4637 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
|
4638 int left = (width - itemWidth) / 2, top = (height - itemHeight) / 2 + 1; |
75 | 4639 OS.SetRect (&rect, left + width, top, left + width + 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
|
4640 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
75 | 4641 auto hTheme = display.hButtonTheme (); |
4642 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
|
4643 rect.left += width; rect.right += width; |
75 | 4644 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
|
4645 rect.left += width; rect.right += width; |
75 | 4646 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
|
4647 rect.left += width; rect.right += width; |
75 | 4648 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
|
4649 } else { |
75 | 4650 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
|
4651 rect.left += width; rect.right += width; |
75 | 4652 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
|
4653 rect.left += width; rect.right += width; |
75 | 4654 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
|
4655 rect.left += width; rect.right += width; |
75 | 4656 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
|
4657 } |
92c102dd64a3
Added all 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 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
|
4659 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
|
4660 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
|
4661 if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) { |
75 | 4662 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
|
4663 } 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
|
4664 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
|
4665 } |
92c102dd64a3
Added all 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 OS.DeleteObject (hBitmap); |
75 | 4667 auto hOldStateList = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_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
|
4668 OS.SendMessage (handle, OS.TVM_SETIMAGELIST, OS.TVSIL_STATE, hStateList); |
75 | 4669 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
|
4670 } |
92c102dd64a3
Added all 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 |
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
|
4672 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
|
4673 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
|
4674 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
|
4675 if ((style & DWT.CHECK) !is 0) setCheckboxImageList (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4676 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4677 |
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
|
4678 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
|
4679 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When the tree is using the explorer |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4681 * theme, it does not use COLOR_WINDOW_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
|
4682 * foreground. When TVM_SETTEXTCOLOR is called with -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
|
4683 * it resets the color to black, not COLOR_WINDOW_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
|
4684 * The fix is to explicitly set the 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
|
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 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
|
4687 if (pixel is -1) pixel = defaultForeground (); |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_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
|
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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4694 * 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
|
4695 * <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
|
4696 * 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
|
4697 * 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
|
4698 * 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
|
4699 * </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
|
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 * @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
|
4702 * |
92c102dd64a3
Added all 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 * @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
|
4704 * <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
|
4705 * <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
|
4706 * </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
|
4707 * |
92c102dd64a3
Added all 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 * @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
|
4709 */ |
92c102dd64a3
Added all 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 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
|
4711 checkWidget (); |
75 | 4712 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
|
4713 if (!show) 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
|
4714 createParent (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 bits = OS.GetWindowLong (hwndHeader, 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
|
4717 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
|
4718 if ((bits & OS.HDS_HIDDEN) 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
|
4719 bits &= ~OS.HDS_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
|
4720 OS.SetWindowLong (hwndHeader, 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
|
4721 OS.ShowWindow (hwndHeader, OS.SW_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
|
4722 } 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
|
4723 if ((bits & OS.HDS_HIDDEN) !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
|
4724 bits |= OS.HDS_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
|
4725 OS.SetWindowLong (hwndHeader, 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
|
4726 OS.ShowWindow (hwndHeader, 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
|
4727 } |
92c102dd64a3
Added all 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 setScrollWidth (); |
92c102dd64a3
Added all 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 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
|
4730 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
4733 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
|
4734 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
|
4735 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When WM_SETREDRAW is 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
|
4737 * turn off redraw, the scroll bars are updated 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
|
4738 * items are added and removed. The fix is to call |
92c102dd64a3
Added all 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 * the default window proc to stop all drawing. |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * Bug in Windows. For some reason, when WM_SETREDRAW |
92c102dd64a3
Added all 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 * is used to turn redraw on for a tree and the tree |
92c102dd64a3
Added all 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 * contains no items, the last item in the tree 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
|
4744 * not redraw properly. If the tree has only 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
|
4745 * that item is not drawn. If another window 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
|
4746 * on top of the item, parts of the item are redrawn |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4747 * and erased at random. The fix is to ensure that 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
|
4748 * case doesn't happen by inserting and deleting 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
|
4749 * when redraw is turned on and there are no items 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
|
4750 * the tree. |
92c102dd64a3
Added all 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 */ |
75 | 4752 HANDLE hItem; |
31
92c102dd64a3
Added all 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 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
|
4754 if (drawCount 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
|
4755 int count = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
4756 if (count is 0) { |
75 | 4757 TVINSERTSTRUCT tvInsert; |
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:
219
diff
changeset
|
4758 tvInsert.hInsertAfter = cast(HTREEITEM) OS.TVI_FIRST; |
75 | 4759 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_INSERTITEM, 0, &tvInsert); |
31
92c102dd64a3
Added all 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 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
213 | 4762 updateScrollBar (); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 super.setRedraw (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
|
4766 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
|
4767 if (drawCount is 1) 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
|
4768 } |
75 | 4769 if (hItem !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
|
4770 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
|
4771 OS.SendMessage (handle, OS.TVM_DELETEITEM, 0, hItem); |
92c102dd64a3
Added all 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 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
|
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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void setScrollWidth () { |
75 | 4777 if (hwndHeader is null || hwndParent is null) 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
|
4778 int width = 0; |
75 | 4779 HDITEM hdItem; |
213 | 4780 for (int i=0; i<columnCount; 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
|
4781 hdItem.mask = OS.HDI_WIDTH; |
75 | 4782 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, i, &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
|
4783 width += hdItem.cxy; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 setScrollWidth (Math.max (scrollWidth, 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
|
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 |
92c102dd64a3
Added all 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 void setScrollWidth (int width) { |
75 | 4789 if (hwndHeader is null || hwndParent is null) 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
|
4790 //TEMPORARY 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
|
4791 //scrollWidth = 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
|
4792 int left = 0; |
75 | 4793 RECT rect; |
4794 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
|
4795 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
|
4796 info.fMask = OS.SIF_RANGE | OS.SIF_PAGE; |
213 | 4797 if (columnCount is 0 && width is 0) { |
75 | 4798 OS.GetScrollInfo (hwndParent, 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
|
4799 info.nPage = info.nMax + 1; |
75 | 4800 OS.SetScrollInfo (hwndParent, OS.SB_HORZ, &info, true); |
4801 OS.GetScrollInfo (hwndParent, OS.SB_VERT, &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
|
4802 info.nPage = info.nMax + 1; |
75 | 4803 OS.SetScrollInfo (hwndParent, OS.SB_VERT, &info, 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
|
4804 } else { |
213 | 4805 if ((style & DWT.H_SCROLL) !is 0) { |
4806 OS.GetClientRect (hwndParent, &rect); | |
4807 OS.GetScrollInfo (hwndParent, OS.SB_HORZ, &info); | |
4808 info.nMax = width; | |
4809 info.nPage = rect.right - rect.left + 1; | |
4810 OS.SetScrollInfo (hwndParent, OS.SB_HORZ, &info, true); | |
4811 info.fMask = OS.SIF_POS; | |
4812 OS.GetScrollInfo (hwndParent, OS.SB_HORZ, &info); | |
4813 left = info.nPos; | |
4814 } | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if (horizontalBar !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
|
4817 horizontalBar.setIncrement (INCREMENT); |
92c102dd64a3
Added all 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 horizontalBar.setPageIncrement (info.nPage); |
92c102dd64a3
Added all 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 } |
75 | 4820 OS.GetClientRect (hwndParent, &rect); |
4821 auto hHeap = OS.GetProcessHeap (); | |
4822 HDLAYOUT playout; | |
4823 playout.prc = ▭ | |
4824 WINDOWPOS pos; | |
4825 playout.pwpos = &pos; | |
4826 OS.SendMessage (hwndHeader, OS.HDM_LAYOUT, 0, &playout); | |
4827 SetWindowPos (hwndHeader, cast(HWND)OS.HWND_TOP, pos.x - left, pos.y, pos.cx + left, pos.cy, OS.SWP_NOACTIVATE); | |
31
92c102dd64a3
Added all 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 int bits = OS.GetWindowLong (handle, OS.GWL_EXSTYLE); |
92c102dd64a3
Added all 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 int b = (bits & OS.WS_EX_CLIENTEDGE) !is 0 ? OS.GetSystemMetrics (OS.SM_CXEDGE) : 0; |
213 | 4830 int w = pos.cx + (columnCount is 0 && width is 0 ? 0 : OS.GetSystemMetrics (OS.SM_CXVSCROLL)); |
31
92c102dd64a3
Added all 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 int h = rect.bottom - rect.top - pos.cy; |
92c102dd64a3
Added all 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 bool oldIgnore = ignoreResize; |
92c102dd64a3
Added all 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 ignoreResize = true; |
75 | 4834 SetWindowPos (handle, null, pos.x - left - b, pos.y + pos.cy - b, w + left + b * 2, h + b * 2, OS.SWP_NOACTIVATE | OS.SWP_NOZORDER); |
31
92c102dd64a3
Added all 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 ignoreResize = 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
|
4836 } |
92c102dd64a3
Added all 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 |
75 | 4838 void setSelection (HANDLE hItem, TVITEM* tvItem, TreeItem [] selection) { |
4839 while (hItem !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
|
4840 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
|
4841 while (index < selection.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
|
4842 TreeItem item = selection [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
|
4843 if (item !is null && item.handle is hItem) 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
|
4844 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
|
4845 } |
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:
219
diff
changeset
|
4846 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 4847 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 if ((tvItem.state & OS.TVIS_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
|
4849 if (index is selection.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
|
4850 tvItem.state = 0; |
75 | 4851 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } 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
|
4854 if (index !is selection.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
|
4855 tvItem.state = OS.TVIS_SELECTED; |
75 | 4856 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
4857 } | |
4858 } | |
4859 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); | |
31
92c102dd64a3
Added all 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 setSelection (hFirstItem, tvItem, selection); |
75 | 4861 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4867 * 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
|
4868 * <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
|
4869 * 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
|
4870 * </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
|
4871 * |
92c102dd64a3
Added all 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 * @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
|
4873 * |
92c102dd64a3
Added all 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 * @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
|
4875 * <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
|
4876 * <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
|
4877 * </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
|
4878 * @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
|
4879 * <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
|
4880 * <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
|
4881 * </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
|
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 * @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
|
4884 */ |
92c102dd64a3
Added all 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 public void setSelection (TreeItem 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
|
4886 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
|
4887 if (item is null) error (DWT.ERROR_NULL_ARGUMENT); |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
4888 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
|
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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
4893 * 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
|
4894 * <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
|
4895 * 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
|
4896 * 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
|
4897 * 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
|
4898 * </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
|
4899 * |
92c102dd64a3
Added all 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 * @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
|
4901 * |
92c102dd64a3
Added all 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 * @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
|
4903 * <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
|
4904 * <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
|
4905 * </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
|
4906 * @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
|
4907 * <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
|
4908 * <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
|
4909 * </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
|
4910 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
4912 */ |
92c102dd64a3
Added all 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 public void setSelection (TreeItem [] 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
|
4914 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
|
4915 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
|
4916 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
|
4917 if (length is 0 || ((style & DWT.SINGLE) !is 0 && length > 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
|
4918 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
|
4919 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
|
4920 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4921 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4922 /* Select/deselect 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
|
4923 TreeItem item = items [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
|
4924 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
|
4925 if (item.isDisposed ()) error (DWT.ERROR_INVALID_ARGUMENT); |
75 | 4926 HANDLE hOldItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
4927 HANDLE hNewItem = hAnchor = item.handle; | |
31
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 * Bug in Windows. When TVM_SELECTITEM is used to select 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
|
4931 * scroll an item to be visible and the client area of the tree |
92c102dd64a3
Added all 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 * is smaller that the size of one item, TVM_SELECTITEM makes |
92c102dd64a3
Added all 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 * the next item in the tree visible by making it 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
|
4934 * instead of making the desired item visible. 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
|
4935 * detect the case when the client area is too small 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
|
4936 * the desired visible item be the top item in the tree. |
92c102dd64a3
Added all 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 * Note that TVM_SELECTITEM when called with TVGN_FIRSTVISIBLE |
92c102dd64a3
Added all 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 * also requires the work around for scrolling. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 bool fixScroll = checkScroll (hNewItem); |
92c102dd64a3
Added all 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 if (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
|
4943 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
|
4944 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
|
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 ignoreSelect = 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
|
4947 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, hNewItem); |
92c102dd64a3
Added all 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 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
|
4949 if (OS.SendMessage (handle, OS.TVM_GETVISIBLECOUNT, 0, 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
|
4950 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_FIRSTVISIBLE, hNewItem); |
213 | 4951 int /*long*/ hParent = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hNewItem); |
31
92c102dd64a3
Added all 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 if (hParent is 0) OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP, 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
|
4953 } |
92c102dd64a3
Added all 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 if (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
|
4955 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
|
4956 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
|
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 |
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the old and new focused 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
|
4961 * are the same, Windows does not check to make sure 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
|
4962 * the item is actually selected, not just focused. 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
|
4963 * fix is to force the item to draw selected by setting |
92c102dd64a3
Added all 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 * the state mask, and to ensure that it 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
|
4965 */ |
92c102dd64a3
Added all 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 if (hOldItem is hNewItem) { |
75 | 4967 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
4969 tvItem.state = OS.TVIS_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
|
4970 tvItem.stateMask = OS.TVIS_SELECTED; |
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:
219
diff
changeset
|
4971 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 4972 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 showItem (hNewItem); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if ((style & DWT.SINGLE) !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
|
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 /* Select/deselect the rest of the items */ |
75 | 4979 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
4981 tvItem.stateMask = OS.TVIS_SELECTED; |
213 | 4982 int /*long*/ oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
4983 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
31
92c102dd64a3
Added all 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 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 4985 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
4986 setSelection (hItem, &tvItem, items); | |
31
92c102dd64a3
Added all 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 } 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
|
4988 for (int i=0; i<this.items.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
|
4989 item = this.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
|
4990 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
|
4991 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
|
4992 while (index < 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
|
4993 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
|
4994 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
|
4995 } |
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:
219
diff
changeset
|
4996 tvItem.hItem = cast(HTREEITEM)item.handle; |
75 | 4997 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 if ((tvItem.state & OS.TVIS_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
|
4999 if (index is 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
|
5000 tvItem.state = 0; |
75 | 5001 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5003 } 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
|
5004 if (index !is 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
|
5005 tvItem.state = OS.TVIS_SELECTED; |
75 | 5006 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 5012 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
5017 * 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
|
5018 * 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
|
5019 * |
92c102dd64a3
Added all 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 * @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
|
5021 * |
92c102dd64a3
Added all 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 * @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
|
5023 * <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
|
5024 * </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
|
5025 * @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
|
5026 * <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
|
5027 * <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
|
5028 * </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
|
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 * @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
|
5031 */ |
92c102dd64a3
Added all 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 public void setSortColumn (TreeColumn 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
|
5033 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
|
5034 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
|
5035 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
|
5036 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
|
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 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
|
5039 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
|
5040 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
|
5041 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
5046 * 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
|
5047 * |
92c102dd64a3
Added all 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 * @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
|
5049 * |
92c102dd64a3
Added all 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 * @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
|
5051 * <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
|
5052 * <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
|
5053 * </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
|
5054 * |
92c102dd64a3
Added all 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 * @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
|
5056 */ |
92c102dd64a3
Added all 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 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
|
5058 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
|
5059 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
|
5060 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
|
5061 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
|
5062 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
|
5063 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * Sets the item which is currently at the top 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
|
5068 * This item can change when items are expanded, collapsed, scrolled |
92c102dd64a3
Added all 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 * 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
|
5070 * |
92c102dd64a3
Added all 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 * @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
|
5072 * |
92c102dd64a3
Added all 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 * @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
|
5074 * <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
|
5075 * <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
|
5076 * </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
|
5077 * @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
|
5078 * <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
|
5079 * <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
|
5080 * </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
|
5081 * |
92c102dd64a3
Added all 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 * @see Tree#getTopItem() |
92c102dd64a3
Added all 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 * |
92c102dd64a3
Added all 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 * @since 2.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
|
5085 */ |
92c102dd64a3
Added all 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 public void setTopItem (TreeItem 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
|
5087 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
|
5088 if (item is null) DWT.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
|
5089 if (item.isDisposed ()) DWT.error (DWT.ERROR_INVALID_ARGUMENT); |
75 | 5090 HANDLE hItem = item.handle; |
5091 auto hTopItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
5092 if (hItem is hTopItem) 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
|
5093 bool fixScroll = checkScroll (hItem), 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
|
5094 if (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
|
5095 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
|
5096 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
|
5097 } 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
|
5098 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
|
5099 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
|
5100 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5101 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_FIRSTVISIBLE, hItem); |
75 | 5102 auto hParent = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hItem); |
5103 if (hParent is null) OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP, 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
|
5104 if (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
|
5105 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
|
5106 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
|
5107 } 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
|
5108 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
|
5109 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
|
5110 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
|
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 } |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
75 | 5116 void showItem (HANDLE hItem) { |
31
92c102dd64a3
Added all 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 /* |
92c102dd64a3
Added all 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 * Bug in Windows. When TVM_ENSUREVISIBLE is used 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
|
5119 * that an item is visible and the client area of the tree 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
|
5120 * smaller that the size of one item, TVM_ENSUREVISIBLE makes |
92c102dd64a3
Added all 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 * the next item in the tree visible by making it 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
|
5122 * instead of making the desired item visible. 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
|
5123 * detect the case when the client area is too small 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
|
5124 * the desired visible item be the top item in the tree. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (OS.SendMessage (handle, OS.TVM_GETVISIBLECOUNT, 0, 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
|
5127 bool fixScroll = checkScroll (hItem); |
92c102dd64a3
Added all 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 if (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
|
5129 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
|
5130 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
|
5131 } |
92c102dd64a3
Added all 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.TVM_SELECTITEM, OS.TVGN_FIRSTVISIBLE, hItem); |
92c102dd64a3
Added all 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 /* 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
|
5134 //int hParent = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hItem); |
92c102dd64a3
Added all 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 //if (hParent is 0) OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP, 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 OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP, 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
|
5137 if (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
|
5138 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
|
5139 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
|
5140 } |
92c102dd64a3
Added all 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 } 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
|
5142 bool scroll = true; |
75 | 5143 RECT itemRect; |
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:
219
diff
changeset
|
5144 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &itemRect, 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
|
5145 forceResize (); |
75 | 5146 RECT rect; |
5147 OS.GetClientRect (handle, &rect); | |
5148 POINT 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
|
5149 pt.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
|
5150 pt.y = itemRect.top; |
75 | 5151 if (OS.PtInRect (&rect, 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
|
5152 pt.y = itemRect.bottom; |
75 | 5153 if (OS.PtInRect (&rect, pt)) scroll = 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
|
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 } |
92c102dd64a3
Added all 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 if (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
|
5157 bool fixScroll = checkScroll (hItem); |
92c102dd64a3
Added all 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 if (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
|
5159 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
|
5160 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
|
5161 } |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hItem); |
92c102dd64a3
Added all 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 if (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
|
5164 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
|
5165 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
|
5166 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
75 | 5169 if (hwndParent !is null) { |
5170 RECT itemRect; | |
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:
219
diff
changeset
|
5171 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &itemRect, 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
|
5172 forceResize (); |
75 | 5173 RECT rect; |
5174 OS.GetClientRect (hwndParent, &rect); | |
5175 OS.MapWindowPoints (hwndParent, handle, cast(POINT*) &rect, 2); | |
5176 POINT 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
|
5177 pt.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
|
5178 pt.y = itemRect.top; |
75 | 5179 if (!OS.PtInRect (&rect, 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
|
5180 pt.y = itemRect.bottom; |
75 | 5181 if (!OS.PtInRect (&rect, pt)) { |
5182 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
|
5183 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
|
5184 info.fMask = OS.SIF_POS; |
92c102dd64a3
Added all 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 info.nPos = Math.max (0, pt.x - Tree.INSET / 2); |
75 | 5186 OS.SetScrollInfo (hwndParent, OS.SB_HORZ, &info, 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
|
5187 setScrollWidth (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 updateScrollBar (); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
5197 * 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
|
5198 * 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
|
5199 * |
92c102dd64a3
Added all 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 * @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
|
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 * @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
|
5203 * <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
|
5204 * <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
|
5205 * </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
|
5206 * @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
|
5207 * <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
|
5208 * <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
|
5209 * </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
|
5210 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5211 * @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
|
5212 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5213 public void showColumn (TreeColumn 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
|
5214 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
|
5215 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
|
5216 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
|
5217 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
|
5218 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
|
5219 if (index is -1) return; |
213 | 5220 if (0 <= index && index < columnCount) { |
5221 forceResize (); | |
5222 RECT rect; | |
5223 OS.GetClientRect (hwndParent, &rect); | |
5224 OS.MapWindowPoints (hwndParent, handle, cast(POINT*) &rect, 2); | |
5225 RECT headerRect; | |
5226 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, index, &headerRect); | |
5227 bool scroll = headerRect.left < rect.left; | |
5228 if (!scroll) { | |
5229 int width = Math.min (rect.right - rect.left, headerRect.right - headerRect.left); | |
5230 scroll = headerRect.left + width > rect.right; | |
5231 } | |
5232 if (scroll) { | |
5233 SCROLLINFO info; | |
5234 info.cbSize = SCROLLINFO.sizeof; | |
5235 info.fMask = OS.SIF_POS; | |
5236 info.nPos = Math.max (0, headerRect.left - Tree.INSET / 2); | |
5237 OS.SetScrollInfo (hwndParent, OS.SB_HORZ, &info, true); | |
5238 setScrollWidth (); | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5240 } |
92c102dd64a3
Added all 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 /** |
92c102dd64a3
Added all 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 * 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
|
5245 * this method simply returns. Otherwise, the items are scrolled |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5246 * and expanded until 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
|
5247 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5248 * @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
|
5249 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5250 * @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
|
5251 * <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
|
5252 * <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
|
5253 * </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
|
5254 * @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
|
5255 * <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
|
5256 * <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
|
5257 * </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
|
5258 * |
92c102dd64a3
Added all 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 * @see Tree#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
|
5260 */ |
92c102dd64a3
Added all 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 public void showItem (TreeItem 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
|
5262 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
|
5263 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
|
5264 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
|
5265 showItem (item.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
|
5266 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5267 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5268 /** |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5269 * 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
|
5270 * 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
|
5271 * 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
|
5272 * |
92c102dd64a3
Added all 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 * @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
|
5274 * <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
|
5275 * <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
|
5276 * </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
|
5277 * |
92c102dd64a3
Added all 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 * @see Tree#showItem(TreeItem) |
92c102dd64a3
Added all 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 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
|
5281 checkWidget (); |
75 | 5282 HANDLE hItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5283 if ((style & DWT.SINGLE) !is 0) { |
75 | 5284 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5285 if (hItem is null) 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
|
5286 int state = 0; |
117 | 5287 static if (OS.IsWinCE) { |
75 | 5288 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.hItem = hItem; |
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_STATE; |
75 | 5291 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5292 state = tvItem.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
|
5293 } 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
|
5294 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_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
|
5295 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5296 if ((state & OS.TVIS_SELECTED) 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
|
5297 } else { |
213 | 5298 int /*long*/ oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
5299 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
75 | 5300 TVITEM tvItem_; |
5301 TVITEM* tvItem; | |
5302 static if (OS.IsWinCE) { | |
5303 tvItem = &tvItem_; | |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_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
|
5305 } |
92c102dd64a3
Added all 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 if ((style & DWT.VIRTUAL) !is 0) { |
75 | 5307 auto hRoot = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 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
|
5308 hItem = getNextSelection (hRoot, tvItem); |
92c102dd64a3
Added all 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 } 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
|
5310 //FIXME - this code expands first selected item it finds |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5311 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
|
5312 while (index <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
|
5313 TreeItem 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
|
5314 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
|
5315 int state = 0; |
117 | 5316 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
|
5317 tvItem.hItem = item.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
|
5318 OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); |
92c102dd64a3
Added all 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 state = tvItem.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
|
5320 } 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
|
5321 state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, item.handle, OS.TVIS_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
|
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 if ((state & OS.TVIS_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
|
5324 hItem = item.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
|
5325 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
|
5326 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5327 } |
92c102dd64a3
Added all 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 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
|
5329 } |
92c102dd64a3
Added all 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 } |
213 | 5331 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all 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 } |
75 | 5333 if (hItem !is null) showItem (hItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /*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
|
5337 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
|
5338 if ((style & DWT.VIRTUAL) !is 0) return; |
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:
219
diff
changeset
|
5339 sort ( cast(HTREEITEM) OS.TVI_ROOT, 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
|
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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5342 void sort (HANDLE hParent, 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
|
5343 int itemCount = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
5344 if (itemCount is 0 || itemCount is 1) return; |
75 | 5345 hFirstIndexOf = hLastIndexOf = 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
|
5346 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
|
5347 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
|
5348 OS.SendMessage (handle, OS.TVM_SORTCHILDREN, all ? 1 : 0, hParent); |
92c102dd64a3
Added all 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 } else { |
75 | 5350 //Callback compareCallback = new Callback (this, "CompareFunc", 3); |
5351 //int lpfnCompare = compareCallback.getAddress (); | |
5352 sThis = this; | |
5353 TVSORTCB psort; | |
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:
219
diff
changeset
|
5354 psort.hParent = cast(HTREEITEM)hParent; |
75 | 5355 psort.lpfnCompare = &CompareFunc; |
31
92c102dd64a3
Added all 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 psort.lParam = sortColumn is null ? 0 : indexOf (sortColumn); |
75 | 5357 OS.SendMessage (handle, OS.TVM_SORTCHILDRENCB, all ? 1 : 0, &psort); |
5358 sThis = null; | |
5359 //compareCallback.dispose (); | |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
5363 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
|
5364 super.subclass (); |
75 | 5365 if (hwndHeader !is null) { |
213 | 5366 OS.SetWindowLongPtr (hwndHeader, OS.GWLP_WNDPROC, display.windowProc); |
5367 } | |
5368 } | |
5369 | |
5370 RECT* toolTipInset (RECT* rect) { | |
5371 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
5372 RECT* insetRect = new RECT(); | |
5373 OS.SetRect (insetRect, rect.left - 1, rect.top - 1, rect.right + 1, rect.bottom + 1); | |
5374 return insetRect; | |
5375 } | |
5376 return rect; | |
5377 } | |
5378 | |
5379 RECT* toolTipRect (RECT* rect) { | |
5380 RECT* toolRect = new RECT (); | |
5381 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
5382 OS.SetRect (toolRect, rect.left - 1, rect.top - 1, rect.right + 1, rect.bottom + 1); | |
5383 } else { | |
5384 OS.SetRect (toolRect, rect.left, rect.top, rect.right, rect.bottom); | |
5385 int dwStyle = OS.GetWindowLong (itemToolTipHandle, OS.GWL_STYLE); | |
5386 int dwExStyle = OS.GetWindowLong (itemToolTipHandle, OS.GWL_EXSTYLE); | |
5387 OS.AdjustWindowRectEx (toolRect, dwStyle, false, dwExStyle); | |
5388 } | |
5389 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
|
5390 } |
92c102dd64a3
Added all 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 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
5392 override String toolTipText (NMTTDISPINFO* hdr) { |
75 | 5393 auto hwndToolTip = cast(HWND) OS.SendMessage (handle, OS.TVM_GETTOOLTIPS, 0, 0); |
5394 if (hwndToolTip is hdr.hdr.hwndFrom && toolTipText_ !is null) return ""; //$NON-NLS-1$ | |
5395 if (headerToolTipHandle is hdr.hdr.hwndFrom) { | |
213 | 5396 for (int i=0; i<columnCount; 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
|
5397 TreeColumn column = columns [i]; |
75 | 5398 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
|
5399 } |
92c102dd64a3
Added all 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 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
|
5401 } |
213 | 5402 if (itemToolTipHandle is hdr.hdr.hwndFrom) { |
75 | 5403 if (toolTipText_ !is null) return ""; |
213 | 5404 int pos = OS.GetMessagePos (); |
5405 POINT pt; | |
5406 OS.POINTSTOPOINT (pt, pos); | |
5407 OS.ScreenToClient (handle, &pt); | |
5408 int index; | |
5409 TreeItem item; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
5410 RECT* cellRect, itemRect; |
213 | 5411 if (findCell (pt.x, pt.y, item, index, cellRect, itemRect)) { |
5412 String text = null; | |
5413 if (index is 0) { | |
5414 text = item.text; | |
5415 } else { | |
5416 String[] strings = item.strings; | |
5417 if (strings !is null) text = strings [index]; | |
5418 } | |
5419 //TEMPORARY CODE | |
5420 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
5421 if (isCustomToolTip ()) text = " "; | |
5422 } | |
5423 if (text !is null) return text; | |
31
92c102dd64a3
Added all 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 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
|
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 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5429 override HWND topHandle () { |
75 | 5430 return hwndParent !is null ? hwndParent : handle; |
31
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void updateFullSelection () { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5434 if ((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
|
5435 int oldBits = OS.GetWindowLong (handle, OS.GWL_STYLE), newBits = oldBits; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5436 if ((newBits & OS.TVS_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
|
5437 if (!OS.IsWindowEnabled (handle) || 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
|
5438 if (!explorerTheme) newBits &= ~OS.TVS_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
|
5439 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5440 } 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
|
5441 if (OS.IsWindowEnabled (handle) && 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
|
5442 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
|
5443 newBits |= OS.TVS_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
|
5444 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5445 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5446 } |
92c102dd64a3
Added all 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 if (newBits !is oldBits) { |
92c102dd64a3
Added all 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 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
|
5449 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
|
5450 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5452 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 void updateHeaderToolTips () { |
75 | 5455 if (headerToolTipHandle is null) return; |
5456 RECT rect; | |
5457 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
|
5458 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
|
5459 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
|
5460 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
|
5461 lpti.lpszText = OS.LPSTR_TEXTCALLBACK; |
213 | 5462 for (int i=0; i<columnCount; 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
|
5463 TreeColumn column = columns [i]; |
75 | 5464 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
|
5465 lpti.uId = column.id = display.nextToolTipId++; |
75 | 5466 lpti.rect.left = rect.left; |
5467 lpti.rect.top = rect.top; | |
5468 lpti.rect.right = rect.right; | |
5469 lpti.rect.bottom = rect.bottom; | |
5470 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
|
5471 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5472 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 void updateImageList () { |
92c102dd64a3
Added all 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 if (imageList is null) return; |
75 | 5477 if (hwndHeader is null) 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
|
5478 int i = 0, index = 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
|
5479 while (i < 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
|
5480 TreeItem 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
|
5481 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
|
5482 Image 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
|
5483 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
|
5484 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
|
5485 } 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
|
5486 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
|
5487 if (images !is null) image = images [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
|
5488 } |
92c102dd64a3
Added all 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 if (image !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
|
5490 } |
92c102dd64a3
Added all 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 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
|
5492 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5493 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When setting the same image list multiple |
92c102dd64a3
Added all 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 * times, Windows does work making this operation slow. 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
|
5496 * is to test for the same image list before setting the new 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
|
5497 */ |
75 | 5498 HBITMAP hImageList = i is items.length ? null : imageList.getHandle (); |
5499 HANDLE hOldImageList = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_NORMAL, 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
|
5500 if (hImageList !is hOldImageList) { |
92c102dd64a3
Added all 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 OS.SendMessage (handle, OS.TVM_SETIMAGELIST, OS.TVSIL_NORMAL, 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
|
5502 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
5505 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
|
5506 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
|
5507 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
|
5508 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
|
5509 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
|
5510 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
|
5511 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
|
5512 break; |
82 | 5513 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
|
5514 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 void updateScrollBar () { |
75 | 5520 if (hwndParent !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
|
5521 if (columnCount !is 0 || scrollWidth !is 0) { |
75 | 5522 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
|
5523 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
|
5524 info.fMask = OS.SIF_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
|
5525 int itemCount = OS.SendMessage (handle, OS.TVM_GETCOUNT, 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
|
5526 if (itemCount is 0) { |
75 | 5527 OS.GetScrollInfo (hwndParent, OS.SB_VERT, &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
|
5528 info.nPage = info.nMax + 1; |
75 | 5529 OS.SetScrollInfo (hwndParent, OS.SB_VERT, &info, 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
|
5530 } else { |
75 | 5531 OS.GetScrollInfo (handle, OS.SB_VERT, &info); |
213 | 5532 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION(4, 10)) { |
5533 if (info.nPage is 0) { | |
5534 SCROLLBARINFO psbi; | |
5535 psbi.cbSize = SCROLLBARINFO.sizeof; | |
5536 OS.GetScrollBarInfo (handle, OS.OBJID_VSCROLL, &psbi); | |
5537 if ((psbi.rgstate [0] & OS.STATE_SYSTEM_INVISIBLE) !is 0) { | |
5538 info.nPage = info.nMax + 1; | |
5539 } | |
5540 } | |
5541 } | |
75 | 5542 OS.SetScrollInfo (hwndParent, OS.SB_VERT, &info, 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
|
5543 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
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
|
5548 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
|
5549 super.unsubclass (); |
75 | 5550 if (hwndHeader !is null) { |
213 | 5551 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
|
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 } |
92c102dd64a3
Added all 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 |
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
|
5555 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
|
5556 int bits = super.widgetStyle () | OS.TVS_SHOWSELALWAYS | OS.TVS_LINESATROOT | OS.TVS_HASBUTTONS | OS.TVS_NONEVENHEIGHT; |
213 | 5557 if (EXPLORER_THEME && !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
|
5558 bits |= OS.TVS_TRACKSELECT; |
92c102dd64a3
Added all 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 if ((style & DWT.FULL_SELECTION) !is 0) bits |= OS.TVS_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
|
5560 } 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
|
5561 if ((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
|
5562 bits |= OS.TVS_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
|
5563 } 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
|
5564 bits |= OS.TVS_HASLINES; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 5567 if ((style & (DWT.H_SCROLL | DWT.V_SCROLL)) is 0) { |
5568 bits &= ~(OS.WS_HSCROLL | OS.WS_VSCROLL); | |
5569 bits |= OS.TVS_NOSCROLL; | |
5570 } else { | |
5571 if ((style & DWT.H_SCROLL) is 0) { | |
5572 bits &= ~OS.WS_HSCROLL; | |
5573 bits |= OS.TVS_NOHSCROLL; | |
5574 } | |
5575 } | |
31
92c102dd64a3
Added all 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 // bits |= OS.TVS_NOTOOLTIPS | OS.TVS_DISABLEDRAGDROP; |
92c102dd64a3
Added all 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 return bits | OS.TVS_DISABLEDRAGDROP; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
5580 override String windowClass () { |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5581 return TCHARsToStr(TreeClass); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5582 } |
92c102dd64a3
Added all 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 |
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
|
5584 override int windowProc () { |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5585 return cast(int) TreeProc; |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5586 } |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5587 |
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
5588 override int windowProc (HWND hwnd, int msg, int wParam, int lParam) { |
75 | 5589 if (hwndHeader !is null && hwnd is 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
|
5590 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
|
5591 /* 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
|
5592 // 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
|
5593 // 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
|
5594 // 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
|
5595 // 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
|
5596 // } |
92c102dd64a3
Added all 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 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
|
5598 /* |
92c102dd64a3
Added all 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 * 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
|
5600 * 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
|
5601 * 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
|
5602 * 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
|
5603 * 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
|
5604 * 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
|
5605 * 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
|
5606 * 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
|
5607 * 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
|
5608 * |
92c102dd64a3
Added all 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 * 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
|
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 (OS.COMCTL32_MAJOR < 6) { |
75 | 5612 if (lParam !is 0 && cast(HANDLE) lParam !is 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
|
5613 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
|
5614 } |
92c102dd64a3
Added all 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 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
|
5617 } |
92c102dd64a3
Added all 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 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
|
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 * 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
|
5621 * 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
|
5622 * 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
|
5623 * 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
|
5624 * 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
|
5625 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5626 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
|
5627 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
|
5628 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
|
5629 } |
92c102dd64a3
Added all 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 case OS.WM_NOTIFY: { |
75 | 5631 NMHDR* hdr = cast(NMHDR*)lParam; |
5632 //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
|
5633 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
|
5634 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
|
5635 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
|
5636 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
|
5637 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
|
5638 return OS.SendMessage (handle, msg, wParam, lParam); |
82 | 5639 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
|
5640 } |
92c102dd64a3
Added all 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 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
|
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 case OS.WM_SETCURSOR: { |
75 | 5644 if (cast(HWND)wParam is hwnd) { |
213 | 5645 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
|
5646 if (hitTest is OS.HTCLIENT) { |
75 | 5647 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
|
5648 int pos = OS.GetMessagePos (); |
75 | 5649 POINT pt; |
213 | 5650 OS.POINTSTOPOINT (pt, pos); |
75 | 5651 OS.ScreenToClient (hwnd, &pt); |
5652 pinfo.pt.x = pt.x; | |
5653 pinfo.pt.y = pt.y; | |
5654 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
|
5655 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
|
5656 if ((pinfo.flags & (OS.HHT_ONDIVIDER | OS.HHT_ONDIVOPEN)) !is 0) { |
75 | 5657 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
|
5658 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
|
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 } |
92c102dd64a3
Added all 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 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
|
5664 } |
82 | 5665 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
|
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 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
|
5668 } |
75 | 5669 if (hwndParent !is null && hwnd is hwndParent) { |
31
92c102dd64a3
Added all 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 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
|
5671 case OS.WM_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
|
5672 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
|
5673 return 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
|
5674 } |
92c102dd64a3
Added all 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 case OS.WM_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
|
5676 setScrollWidth (); |
92c102dd64a3
Added all 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 (ignoreResize) return 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
|
5678 setResizeChildren (false); |
213 | 5679 int /*long*/ code = callWindowProc (hwnd, OS.WM_SIZE, 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
|
5680 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
|
5681 if (isDisposed ()) return 0; |
75 | 5682 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
|
5683 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
|
5684 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
|
5685 } |
92c102dd64a3
Added all 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 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
|
5687 updateScrollBar (); |
92c102dd64a3
Added all 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 return 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
|
5689 } |
92c102dd64a3
Added all 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 case OS.WM_NCPAINT: { |
92c102dd64a3
Added all 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 LRESULT result = wmNCPaint (hwnd, wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
5692 if (result !is null) return result.value; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5693 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
|
5694 } |
92c102dd64a3
Added all 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 case OS.WM_PRINT: { |
92c102dd64a3
Added all 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 LRESULT result = wmPrint (hwnd, wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
5697 if (result !is null) return result.value; |
31
92c102dd64a3
Added all 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 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
|
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 case OS.WM_COMMAND: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5701 case OS.WM_NOTIFY: |
92c102dd64a3
Added all 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 case OS.WM_SYSCOLORCHANGE: { |
92c102dd64a3
Added all 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 return OS.SendMessage (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
|
5704 } |
92c102dd64a3
Added all 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 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
|
5706 /* |
92c102dd64a3
Added all 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 * Bug on WinCE. lParam should be NULL when the message is not 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
|
5708 * by a scroll bar control, but it contains the handle to 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
|
5709 * When the message is sent by a scroll bar control, it correctly |
92c102dd64a3
Added all 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 * contains the handle to the scroll bar. 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
|
5711 * 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
|
5712 */ |
75 | 5713 if (horizontalBar !is null && (lParam is 0 || lParam is cast(int)hwndParent)) { |
31
92c102dd64a3
Added all 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 wmScroll (horizontalBar, true, hwndParent, OS.WM_HSCROLL, 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
|
5715 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5716 setScrollWidth (); |
92c102dd64a3
Added all 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 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
|
5718 } |
92c102dd64a3
Added all 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 case OS.WM_VSCROLL: { |
75 | 5720 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
|
5721 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
|
5722 info.fMask = OS.SIF_ALL; |
75 | 5723 OS.GetScrollInfo (hwndParent, OS.SB_VERT, &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
|
5724 /* |
92c102dd64a3
Added all 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 * Update the nPos field to match the nTrackPos field |
92c102dd64a3
Added all 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 * so that the tree scrolls when the scroll bar 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
|
5727 * parent 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
|
5728 * |
92c102dd64a3
Added all 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 * NOTE: For some reason, this code is only 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
|
5730 * on Windows Vista. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
213 | 5733 if (OS.LOWORD (wParam) is OS.SB_THUMBTRACK) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5734 info.nPos = info.nTrackPos; |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
75 | 5737 OS.SetScrollInfo (handle, OS.SB_VERT, &info, true); |
213 | 5738 int /*long*/ code = OS.SendMessage (handle, OS.WM_VSCROLL, wParam, lParam); |
75 | 5739 OS.GetScrollInfo (handle, OS.SB_VERT, &info); |
5740 OS.SetScrollInfo (hwndParent, OS.SB_VERT, &info, true); | |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
5741 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
|
5742 } |
82 | 5743 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
|
5744 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5745 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
|
5746 } |
213 | 5747 if (msg is Display.DI_GETDRAGIMAGE) { |
5748 //TEMPORARY CODE | |
5749 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) return 0; | |
5750 /* | |
5751 * When there is more than one item selected, DI_GETDRAGIMAGE | |
5752 * returns the item under the cursor. This happens because | |
5753 * the tree does not have implement multi-select. The fix | |
5754 * is to disable DI_GETDRAGIMAGE when more than one item is | |
5755 * selected. | |
5756 */ | |
5757 if ((style & DWT.MULTI) !is 0) { | |
5758 if (getSelectionCount () !is 1) return 0; | |
5759 } | |
5760 } | |
31
92c102dd64a3
Added all 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 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
|
5762 } |
92c102dd64a3
Added all 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 |
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
|
5764 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
|
5765 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:
82
diff
changeset
|
5766 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
|
5767 /* |
92c102dd64a3
Added all 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 * Feature in Windows. The tree control beeps |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5769 * in WM_CHAR when the search for the 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
|
5770 * matches the key stroke fails. This is 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
|
5771 * standard tree behavior but is unexpected 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
|
5772 * the key that was typed was ESC, CR or 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
|
5773 * The fix is to avoid calling the tree 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
|
5774 * proc in these cases. |
92c102dd64a3
Added all 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 */ |
92c102dd64a3
Added all 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 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
|
5777 case ' ': { |
75 | 5778 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5779 if (hItem !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
|
5780 hAnchor = hItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5781 OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hItem); |
75 | 5782 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
5784 tvItem.hItem = cast(HTREEITEM)hItem; |
31
92c102dd64a3
Added all 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 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
|
5786 tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; |
75 | 5787 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 int state = tvItem.state >> 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
|
5789 if ((state & 0x1) !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
|
5790 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
|
5791 } 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
|
5792 --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
|
5793 } |
92c102dd64a3
Added all 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 tvItem.state = state << 12; |
75 | 5795 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
117 | 5796 static if (!OS.IsWinCE) { |
75 | 5797 int id = cast(int) hItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5798 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
|
5799 id = OS.SendMessage (handle, OS.TVM_MAPHTREEITEMTOACCID, hItem, 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
|
5800 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5801 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, id); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 tvItem.stateMask = OS.TVIS_SELECTED; |
75 | 5805 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 ((style & DWT.MULTI) !is 0 && 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
|
5807 if ((tvItem.state & OS.TVIS_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
|
5808 tvItem.state &= ~OS.TVIS_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
|
5809 } 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
|
5810 tvItem.state |= OS.TVIS_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
|
5811 } |
92c102dd64a3
Added all 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 } 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
|
5813 tvItem.state |= OS.TVIS_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
|
5814 } |
75 | 5815 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 TreeItem item = _getItem (hItem, tvItem.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
|
5817 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
|
5818 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
|
5819 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
|
5820 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
|
5821 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
|
5822 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
|
5823 event.detail = 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
|
5824 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
|
5825 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
5828 } |
92c102dd64a3
Added all 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 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
|
5830 /* |
92c102dd64a3
Added all 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 * Feature in Windows. Windows sends NM_RETURN 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
|
5832 * instead of using WM_CHAR. This means that application 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
|
5833 * that expects to consume the key press and therefore avoid 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
|
5834 * DWT.DefaultSelection event from WM_CHAR will fail. 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
|
5835 * is to implement DWT.DefaultSelection in WM_CHAR instead 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
|
5836 * using NM_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
|
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 Event event = new Event (); |
75 | 5839 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5840 if (hItem !is null) event.item = _getItem (hItem); | |
31
92c102dd64a3
Added all 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 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
|
5842 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
|
5843 } |
92c102dd64a3
Added all 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 case DWT.ESC: |
92c102dd64a3
Added all 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 return LRESULT.ZERO; |
82 | 5846 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
|
5847 } |
92c102dd64a3
Added all 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 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
|
5849 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5850 |
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
|
5851 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
|
5852 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
|
5853 if ((style & DWT.DOUBLE_BUFFERED) !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
|
5854 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
|
5855 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
|
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 |
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
|
5858 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
|
5859 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5860 * 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
|
5861 * control because support for checked item and tree 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
|
5862 * accessibility is temporarily implemented in the accessibility |
92c102dd64a3
Added all 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 * 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
|
5864 */ |
75 | 5865 if ((style & DWT.CHECK) !is 0 || hwndParent !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
|
5866 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
|
5867 } |
92c102dd64a3
Added all 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 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
|
5869 } |
92c102dd64a3
Added all 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 |
213 | 5871 override LRESULT WM_HSCROLL (int wParam, int lParam) { |
5872 bool fixScroll = false; | |
5873 if ((style & DWT.DOUBLE_BUFFERED) !is 0) { | |
5874 fixScroll = (style & DWT.VIRTUAL) !is 0 || hooks (DWT.EraseItem) || hooks (DWT.PaintItem); | |
5875 } | |
5876 if (fixScroll) { | |
5877 style &= ~DWT.DOUBLE_BUFFERED; | |
5878 if (explorerTheme) { | |
5879 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, OS.TVS_EX_DOUBLEBUFFER, 0); | |
5880 } | |
5881 } | |
5882 LRESULT result = super.WM_HSCROLL (wParam, lParam); | |
5883 if (fixScroll) { | |
5884 style |= DWT.DOUBLE_BUFFERED; | |
5885 if (explorerTheme) { | |
5886 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, OS.TVS_EX_DOUBLEBUFFER, OS.TVS_EX_DOUBLEBUFFER); | |
5887 } | |
5888 } | |
5889 if (result !is null) return result; | |
5890 return result; | |
5891 } | |
5892 | |
5893 override LRESULT WM_KEYDOWN (int /*long*/ wParam, int /*long*/ 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
|
5894 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:
82
diff
changeset
|
5895 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
|
5896 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
|
5897 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
|
5898 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5899 * 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
|
5900 * 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
|
5901 * 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
|
5902 * 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
|
5903 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5904 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
|
5905 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
|
5906 if (OS.GetKeyState (OS.VK_CONTROL) < 0) { |
75 | 5907 if (hwndHeader !is null) { |
213 | 5908 TreeColumn [] newColumns = new TreeColumn [columnCount]; |
5909 System.arraycopy (columns, 0, newColumns, 0, columnCount); | |
5910 for (int i=0; i<columnCount; 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
|
5911 TreeColumn 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
|
5912 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
|
5913 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
|
5914 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5916 } |
92c102dd64a3
Added all 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 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
|
5919 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
|
5920 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
|
5921 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
|
5922 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
|
5923 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
|
5924 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
|
5925 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
|
5926 if ((style & DWT.SINGLE) !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
|
5927 if (OS.GetKeyState (OS.VK_SHIFT) < 0) { |
75 | 5928 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5929 if (hItem !is null) { | |
5930 if (hAnchor is null) hAnchor = hItem; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5931 ignoreSelect = ignoreDeselect = true; |
213 | 5932 int /*long*/ code = callWindowProc (handle, OS.WM_KEYDOWN, 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
|
5933 ignoreSelect = ignoreDeselect = false; |
75 | 5934 auto hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5935 TVITEM tvItem; | |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
5937 tvItem.stateMask = OS.TVIS_SELECTED; |
75 | 5938 auto hDeselectItem = hItem; |
5939 RECT rect1; | |
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:
219
diff
changeset
|
5940 if (!OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false)) { |
213 | 5941 hAnchor = hItem; |
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:
219
diff
changeset
|
5942 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false); |
213 | 5943 } |
75 | 5944 RECT rect2; |
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:
219
diff
changeset
|
5945 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hDeselectItem, &rect2, 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
|
5946 int flags = rect1.top < rect2.top ? OS.TVGN_PREVIOUSVISIBLE : OS.TVGN_NEXTVISIBLE; |
92c102dd64a3
Added all 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 while (hDeselectItem !is hAnchor) { |
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:
219
diff
changeset
|
5948 tvItem.hItem = cast(HTREEITEM)hDeselectItem; |
75 | 5949 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
5950 hDeselectItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hDeselectItem); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5951 } |
75 | 5952 auto hSelectItem = hAnchor; |
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:
219
diff
changeset
|
5953 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect1, false); |
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:
219
diff
changeset
|
5954 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hSelectItem, &rect2, 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
|
5955 tvItem.state = OS.TVIS_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
|
5956 flags = rect1.top < rect2.top ? OS.TVGN_PREVIOUSVISIBLE : OS.TVGN_NEXTVISIBLE; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5957 while (hSelectItem !is hNewItem) { |
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:
219
diff
changeset
|
5958 tvItem.hItem = cast(HTREEITEM)hSelectItem; |
75 | 5959 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
5960 hSelectItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hSelectItem); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5961 } |
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:
219
diff
changeset
|
5962 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 5963 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
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:
219
diff
changeset
|
5965 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 5966 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5967 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
|
5968 event.item = _getItem (hNewItem, tvItem.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
|
5969 postEvent (DWT.Selection, event); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
5970 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
|
5971 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5972 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5973 if (OS.GetKeyState (OS.VK_CONTROL) < 0) { |
75 | 5974 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
5975 if (hItem !is null) { | |
5976 TVITEM tvItem; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5977 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
5978 tvItem.stateMask = OS.TVIS_SELECTED; |
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:
219
diff
changeset
|
5979 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 5980 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5981 bool oldSelected = (tvItem.state & OS.TVIS_SELECTED) !is 0; |
75 | 5982 HANDLE hNewItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5983 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
|
5984 case OS.VK_UP: |
75 | 5985 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PREVIOUSVISIBLE, hItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5986 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
|
5987 case OS.VK_DOWN: |
75 | 5988 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5989 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
|
5990 case OS.VK_HOME: |
75 | 5991 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 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
|
5992 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
|
5993 case OS.VK_PRIOR: |
75 | 5994 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
5995 if (hNewItem is hItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5996 OS.SendMessage (handle, OS.WM_VSCROLL, OS.SB_PAGEUP, 0); |
75 | 5997 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
5998 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5999 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
|
6000 case OS.VK_NEXT: |
75 | 6001 RECT rect, clientRect; |
6002 OS.GetClientRect (handle, &clientRect); | |
6003 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_FIRSTVISIBLE, 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
|
6004 do { |
75 | 6005 auto hVisible = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hNewItem); |
6006 if (hVisible is null) break; | |
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:
219
diff
changeset
|
6007 if (!OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hVisible, &rect, false)) 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
|
6008 if (rect.bottom > clientRect.bottom) 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
|
6009 if ((hNewItem = hVisible) is hItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6010 OS.SendMessage (handle, OS.WM_VSCROLL, OS.SB_PAGEDOWN, 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
|
6011 } |
75 | 6012 } while (hNewItem !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
|
6013 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
|
6014 case OS.VK_END: |
75 | 6015 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 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
|
6016 break; |
82 | 6017 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
|
6018 } |
75 | 6019 if (hNewItem !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
|
6020 OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hNewItem); |
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:
219
diff
changeset
|
6021 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 6022 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6023 bool newSelected = (tvItem.state & OS.TVIS_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
|
6024 bool redraw = !newSelected && 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
|
6025 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
|
6026 OS.UpdateWindow (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
|
6027 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
|
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 hSelect = hNewItem; |
92c102dd64a3
Added all 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 ignoreSelect = 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
|
6031 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, hNewItem); |
92c102dd64a3
Added all 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 ignoreSelect = false; |
75 | 6033 hSelect = 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
|
6034 if (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
|
6035 tvItem.state = OS.TVIS_SELECTED; |
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:
219
diff
changeset
|
6036 tvItem.hItem = cast(HTREEITEM)hItem; |
75 | 6037 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6038 } |
92c102dd64a3
Added all 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 if (!newSelected) { |
92c102dd64a3
Added all 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 tvItem.state = 0; |
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:
219
diff
changeset
|
6041 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 6042 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6044 if (redraw) { |
75 | 6045 RECT rect1, rect2; |
213 | 6046 bool fItemRect = (style & DWT.FULL_SELECTION) is 0; |
6047 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; | |
6048 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; | |
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:
219
diff
changeset
|
6049 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect1, fItemRect); |
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:
219
diff
changeset
|
6050 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); |
31
92c102dd64a3
Added all 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 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
75 | 6052 OS.InvalidateRect (handle, &rect1, true); |
6053 OS.InvalidateRect (handle, &rect2, 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
|
6054 OS.UpdateWindow (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
|
6055 } |
92c102dd64a3
Added all 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 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
|
6057 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 6060 int /*long*/ code = callWindowProc (handle, OS.WM_KEYDOWN, wParam, lParam); |
75 | 6061 hAnchor = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6062 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
|
6063 } |
82 | 6064 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
|
6065 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6066 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
|
6067 } |
92c102dd64a3
Added all 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 |
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
|
6069 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
|
6070 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6071 * Bug in Windows. When a tree item that has 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
|
6072 * with alpha is expanded or collapsed, the area where |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6073 * the image is drawn is not erased before it is 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
|
6074 * This means that the image gets darker each 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
|
6075 * The fix is to redraw 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
|
6076 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6077 * Feature in Windows. When multiple item have |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6078 * the TVIS_SELECTED state, Windows redraws only |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6079 * the focused item in the color used to show 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
|
6080 * selection when the tree loses or gains focus. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6081 * The fix is to force Windows to redraw 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
|
6082 * selection when focus is gained or lost. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6083 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6084 bool redraw = (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
|
6085 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
|
6086 if (!OS.IsWinCE && 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
|
6087 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
|
6088 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
|
6089 if ((bits & OS.TVS_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
|
6090 redraw = 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
|
6091 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6093 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6094 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6095 if (redraw) redrawSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6096 return 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
|
6097 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6098 |
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
|
6099 override LRESULT WM_LBUTTONDBLCLK (int wParam, int lParam) { |
75 | 6100 TVHITTESTINFO lpht; |
213 | 6101 lpht.pt.x = OS.GET_X_LPARAM (lParam); |
6102 lpht.pt.y = OS.GET_Y_LPARAM (lParam); | |
75 | 6103 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); |
6104 if (lpht.hItem !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
|
6105 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
|
6106 if ((lpht.flags & OS.TVHT_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
|
6107 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
|
6108 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
|
6109 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
|
6110 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
|
6111 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
|
6112 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
|
6113 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6114 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
|
6115 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6116 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
|
6117 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
|
6118 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6119 OS.SetFocus (handle); |
75 | 6120 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6121 tvItem.hItem = lpht.hItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6122 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_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
|
6123 tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; |
75 | 6124 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6125 int state = tvItem.state >> 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
|
6126 if ((state & 0x1) !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
|
6127 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
|
6128 } 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
|
6129 --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
|
6130 } |
92c102dd64a3
Added all 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 tvItem.state = state << 12; |
75 | 6132 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
117 | 6133 static if (!OS.IsWinCE) { |
75 | 6134 int id = cast(int) tvItem.hItem; |
31
92c102dd64a3
Added all 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 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
|
6136 id = OS.SendMessage (handle, OS.TVM_MAPHTREEITEMTOACCID, tvItem.hItem, 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
|
6137 } |
92c102dd64a3
Added all 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 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, id); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
6141 event.item = _getItem (tvItem.hItem, tvItem.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
|
6142 event.detail = 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
|
6143 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
|
6144 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
|
6145 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6147 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6148 LRESULT result = super.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
|
6149 if (result is LRESULT.ZERO) return result; |
75 | 6150 if (lpht.hItem !is null) { |
213 | 6151 int flags = OS.TVHT_ONITEM; |
6152 if ((style & DWT.FULL_SELECTION) !is 0) { | |
6153 flags |= OS.TVHT_ONITEMRIGHT | OS.TVHT_ONITEMINDENT; | |
6154 } else { | |
6155 if (hooks (DWT.MeasureItem)) { | |
6156 lpht.flags &= ~(OS.TVHT_ONITEMICON | OS.TVHT_ONITEMLABEL); | |
6157 if (hitTestSelection (lpht.hItem, lpht.pt.x, lpht.pt.y)) { | |
6158 lpht.flags |= OS.TVHT_ONITEMICON | OS.TVHT_ONITEMLABEL; | |
6159 } | |
6160 } | |
6161 } | |
6162 if ((lpht.flags & flags) !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
|
6163 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
|
6164 event.item = _getItem (lpht.hItem); |
92c102dd64a3
Added all 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 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
|
6166 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6167 } |
92c102dd64a3
Added all 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 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
|
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 |
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
|
6171 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
|
6172 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6173 * In a multi-select tree, if the user is collapsing a subtree 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
|
6174 * contains selected items, clear the selection from these 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
|
6175 * issue a selection event. Only items that are selected and 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
|
6176 * are cleared. This code also runs in the case when the white 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
|
6177 * below the last 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
|
6178 */ |
75 | 6179 TVHITTESTINFO lpht; |
213 | 6180 lpht.pt.x = OS.GET_X_LPARAM (lParam); |
6181 lpht.pt.y = OS.GET_Y_LPARAM (lParam); | |
75 | 6182 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); |
6183 if (lpht.hItem is null || (lpht.flags & OS.TVHT_ONITEMBUTTON) !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
|
6184 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
|
6185 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
|
6186 if (!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
|
6187 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
|
6188 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
|
6189 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6190 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
|
6191 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6192 bool fixSelection = false, deselected = false; |
213 | 6193 HANDLE hOldSelection = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
75 | 6194 if (lpht.hItem !is null && (style & DWT.MULTI) !is 0) { |
213 | 6195 if (hOldSelection !is null) { |
75 | 6196 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6197 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
6198 tvItem.hItem = lpht.hItem; |
75 | 6199 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 if ((tvItem.state & OS.TVIS_EXPANDED) !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
|
6201 fixSelection = 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
|
6202 tvItem.stateMask = OS.TVIS_SELECTED; |
75 | 6203 auto hNext = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, lpht.hItem); |
6204 while (hNext !is null) { | |
213 | 6205 if (hNext is hAnchor) hAnchor = null; |
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:
219
diff
changeset
|
6206 tvItem.hItem = cast(HTREEITEM)hNext; |
75 | 6207 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 if ((tvItem.state & OS.TVIS_SELECTED) !is 0) deselected = 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
|
6209 tvItem.state = 0; |
75 | 6210 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
6211 HANDLE hItem = hNext = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hNext); | |
6212 while (hItem !is null && hItem !is lpht.hItem) { | |
6213 hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_PARENT, hItem); | |
31
92c102dd64a3
Added all 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 } |
75 | 6215 if (hItem is null) 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
|
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 } |
92c102dd64a3
Added all 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 dragStarted = gestureCompleted = 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
|
6221 if (fixSelection) ignoreDeselect = ignoreSelect = lockSelection = true; |
213 | 6222 int /*long*/ code = callWindowProc (handle, OS.WM_LBUTTONDOWN, 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
|
6223 if (fixSelection) ignoreDeselect = ignoreSelect = lockSelection = false; |
213 | 6224 HANDLE hNewSelection = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
6225 if (hOldSelection !is hNewSelection) hAnchor = hNewSelection; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6226 if (dragStarted) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6227 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
|
6228 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
|
6229 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6230 } |
213 | 6231 /* |
6232 * Bug in Windows. When a tree has no images and an item is | |
6233 * expanded or collapsed, for some reason, Windows changes | |
6234 * the size of the selection. When the user expands a tree | |
6235 * item, the selection rectangle is made a few pixels larger. | |
6236 * When the user collapses an item, the selection rectangle | |
6237 * is restored to the original size but the selection is not | |
6238 * redrawn, causing pixel corruption. The fix is to detect | |
6239 * this case and redraw the item. | |
6240 */ | |
6241 if ((lpht.flags & OS.TVHT_ONITEMBUTTON) !is 0) { | |
6242 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
6243 if ((bits & OS.TVS_FULLROWSELECT) is 0) { | |
6244 if (OS.SendMessage (handle, OS.TVM_GETIMAGELIST, OS.TVSIL_NORMAL, 0) is 0) { | |
6245 auto hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); | |
6246 if (hItem !is null) { | |
6247 RECT rect; | |
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:
219
diff
changeset
|
6248 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { |
213 | 6249 OS.InvalidateRect (handle, &rect, true); |
6250 } | |
6251 } | |
6252 } | |
6253 } | |
6254 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6255 if (deselected) { |
92c102dd64a3
Added all 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 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
|
6257 event.item = _getItem (lpht.hItem); |
92c102dd64a3
Added all 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 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
|
6259 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6260 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
|
6261 } |
92c102dd64a3
Added all 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 /* 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
|
6264 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
|
6265 if ((lpht.flags & OS.TVHT_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
|
6266 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
|
6267 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
|
6268 if (!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
|
6269 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
|
6270 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
|
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 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
|
6273 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6274 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
|
6275 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
|
6276 } |
92c102dd64a3
Added all 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 OS.SetFocus (handle); |
75 | 6278 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6279 tvItem.hItem = lpht.hItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6280 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_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
|
6281 tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; |
75 | 6282 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 int state = tvItem.state >> 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
|
6284 if ((state & 0x1) !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
|
6285 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
|
6286 } 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
|
6287 --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
|
6288 } |
92c102dd64a3
Added all 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 tvItem.state = state << 12; |
75 | 6290 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
117 | 6291 static if (!OS.IsWinCE) { |
75 | 6292 int id = cast(int) tvItem.hItem; |
31
92c102dd64a3
Added all 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 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
|
6294 id = OS.SendMessage (handle, OS.TVM_MAPHTREEITEMTOACCID, tvItem.hItem, 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
|
6295 } |
92c102dd64a3
Added all 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 OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, id); |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 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
|
6299 event.item = _getItem (tvItem.hItem, tvItem.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
|
6300 event.detail = 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
|
6301 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
|
6302 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
|
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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6305 |
213 | 6306 /* |
6307 * Feature in Windows. When the tree has the style | |
6308 * TVS_FULLROWSELECT, the background color for the | |
6309 * entire row is filled when an item is painted, | |
6310 * drawing on top of any custom drawing. The fix | |
6311 * is to emulate TVS_FULLROWSELECT. | |
6312 */ | |
6313 bool selected = false; | |
6314 bool fakeSelection = false; | |
6315 if (lpht.hItem !is null) { | |
6316 if ((style & DWT.FULL_SELECTION) !is 0) { | |
6317 int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); | |
6318 if ((bits & OS.TVS_FULLROWSELECT) is 0) fakeSelection = true; | |
6319 } else { | |
6320 if (hooks (DWT.MeasureItem)) { | |
6321 selected = hitTestSelection (lpht.hItem, lpht.pt.x, lpht.pt.y) !is 0; | |
6322 if (selected) { | |
6323 if ((lpht.flags & OS.TVHT_ONITEM) is 0) fakeSelection = true; | |
6324 } | |
6325 } | |
6326 } | |
6327 } | |
6328 | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6329 /* Process the mouse when an item is not selected */ |
213 | 6330 if (!selected && (style & DWT.FULL_SELECTION) 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
|
6331 if ((lpht.flags & OS.TVHT_ONITEM) 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
|
6332 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
|
6333 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
|
6334 if (!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
|
6335 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
|
6336 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
|
6337 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6338 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
|
6339 } |
213 | 6340 int /*long*/ code = callWindowProc (handle, OS.WM_LBUTTONDOWN, 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
|
6341 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
|
6342 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
|
6343 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6344 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
|
6345 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 /* Get the selected state of the item under the mouse */ |
75 | 6349 TVITEM tvItem; |
31
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
6351 tvItem.stateMask = OS.TVIS_SELECTED; |
213 | 6352 bool hittestSelected = 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
|
6353 if ((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
|
6354 tvItem.hItem = lpht.hItem; |
75 | 6355 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 hittestSelected = (tvItem.state & OS.TVIS_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
|
6357 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Get the selected state of the last selected item */ |
75 | 6360 auto hOldItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 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
|
6361 if ((style & DWT.MULTI) !is 0) { |
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:
219
diff
changeset
|
6362 tvItem.hItem = cast(HTREEITEM)hOldItem; |
75 | 6363 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Check for CONTROL or drag 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
|
6366 if (hittestSelected || (wParam & OS.MK_CONTROL) !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
|
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 * Feature in Windows. When the tree is not drawing focus |
213 | 6369 * and the user selects a tree item while the CONTROL key |
6370 * is down, the tree window proc sends WM_UPDATEUISTATE | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6371 * to the top level window, causing controls within the shell |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6372 * to redraw. When drag detect is enabled, the tree 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
|
6373 * proc runs a modal loop that allows WM_PAINT messages 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
|
6374 * delivered during WM_LBUTTONDOWN. 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
|
6375 * to disable drawing for the tree and a WM_PAINT happens 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
|
6376 * a parent of the tree (or a sibling that overlaps), the 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
|
6377 * will draw on top of the tree. If WM_SETREDRAW is turned back |
92c102dd64a3
Added all 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 * on without redrawing the entire tree, pixel corruption 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
|
6379 * This case only seems to happen when the tree has been 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
|
6380 * focus from WM_MOUSEACTIVATE of the shell. The fix is to |
213 | 6381 * force the WM_UPDATEUISTATE to be sent before disabling |
6382 * the drawing. | |
31
92c102dd64a3
Added all 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 * NOTE: Any redraw of a parent (or sibling) will be dispatched |
92c102dd64a3
Added all 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 * during the modal drag detect loop. This code only fixes 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
|
6386 * case where the tree causes a redraw from WM_UPDATEUISTATE. |
213 | 6387 * In DWT, the InvalidateRect() that caused the pixel corruption |
31
92c102dd64a3
Added all 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 * is found in Composite.WM_UPDATEUISTATE(). |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6389 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6390 int uiState = OS.SendMessage (handle, OS.WM_QUERYUISTATE, 0, 0); |
213 | 6391 if ((uiState & OS.UISF_HIDEFOCUS) !is 0) { |
6392 OS.SendMessage (handle, OS.WM_CHANGEUISTATE, OS.UIS_INITIALIZE, 0); | |
6393 } | |
6394 OS.UpdateWindow (handle); | |
6395 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
|
6396 } 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
|
6397 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
|
6398 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6400 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6401 /* Do 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
|
6402 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
|
6403 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
|
6404 if (!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
|
6405 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
|
6406 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
|
6407 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6408 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
|
6409 } |
92c102dd64a3
Added all 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 hSelect = lpht.hItem; |
92c102dd64a3
Added all 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 dragStarted = gestureCompleted = 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
|
6412 ignoreDeselect = ignoreSelect = true; |
213 | 6413 int /*long*/ code = callWindowProc (handle, OS.WM_LBUTTONDOWN, wParam, lParam); |
75 | 6414 auto hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); |
213 | 6415 if (fakeSelection) { |
6416 if (hOldItem is null || (hNewItem is hOldItem && lpht.hItem !is hOldItem)) { | |
6417 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, lpht.hItem); | |
6418 hNewItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); | |
6419 } | |
6420 if (!dragStarted && (state & DRAG_DETECT) !is 0 && hooks (DWT.DragDetect)) { | |
6421 dragStarted = dragDetect (handle, lpht.pt.x, lpht.pt.y, false, null, 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
|
6422 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 ignoreDeselect = ignoreSelect = false; |
75 | 6425 hSelect = 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
|
6426 if (dragStarted) { |
92c102dd64a3
Added all 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 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
|
6428 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
|
6429 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6430 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6431 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6432 /* |
92c102dd64a3
Added all 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 * Feature in Windows. When the old and new focused 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
|
6434 * are the same, Windows does not check to make sure 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
|
6435 * the item is actually selected, not just focused. 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
|
6436 * fix is to force the item to draw selected by setting |
92c102dd64a3
Added all 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 * the state mask. This is only necessary when the tree |
92c102dd64a3
Added all 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 * is single 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
|
6439 */ |
92c102dd64a3
Added all 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 if ((style & DWT.SINGLE) !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 if (hOldItem is hNewItem) { |
92c102dd64a3
Added all 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 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
6443 tvItem.state = OS.TVIS_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
|
6444 tvItem.stateMask = OS.TVIS_SELECTED; |
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:
219
diff
changeset
|
6445 tvItem.hItem = cast(HTREEITEM)hNewItem; |
75 | 6446 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6447 } |
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Reselect the last item that was unselected */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6451 if ((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
|
6452 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6453 /* Check for CONTROL and reselect the last 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
|
6454 if (hittestSelected || (wParam & OS.MK_CONTROL) !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
|
6455 if (hOldItem is hNewItem && hOldItem is lpht.hItem) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6456 if ((wParam & OS.MK_CONTROL) !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
|
6457 tvItem.state ^= OS.TVIS_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
|
6458 if (dragStarted) tvItem.state = OS.TVIS_SELECTED; |
75 | 6459 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6461 } 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
|
6462 if ((tvItem.state & OS.TVIS_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
|
6463 tvItem.state = OS.TVIS_SELECTED; |
75 | 6464 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 if ((wParam & OS.MK_CONTROL) !is 0 && !dragStarted) { |
92c102dd64a3
Added all 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 if (hittestSelected) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6468 tvItem.state = 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
|
6469 tvItem.hItem = lpht.hItem; |
75 | 6470 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
213 | 6474 RECT rect1, rect2; |
6475 bool fItemRect = (style & DWT.FULL_SELECTION) is 0; | |
6476 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; | |
6477 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; | |
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:
219
diff
changeset
|
6478 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hOldItem, &rect1, fItemRect); |
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:
219
diff
changeset
|
6479 OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); |
213 | 6480 OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); |
6481 OS.InvalidateRect (handle, &rect1, true); | |
6482 OS.InvalidateRect (handle, &rect2, true); | |
6483 OS.UpdateWindow (handle); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6484 } |
92c102dd64a3
Added all 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 |
92c102dd64a3
Added all 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 /* Check for SHIFT or normal select and deselect/reselect 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
|
6487 if ((wParam & OS.MK_CONTROL) 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
|
6488 if (!hittestSelected || !dragStarted) { |
92c102dd64a3
Added all 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 tvItem.state = 0; |
213 | 6490 auto oldProc = OS.GetWindowLongPtr (handle, OS.GWLP_WNDPROC); |
6491 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, cast(LONG_PTR)TreeProc); | |
31
92c102dd64a3
Added all 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 ((style & DWT.VIRTUAL) !is 0) { |
75 | 6493 HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_ROOT, 0); |
6494 deselect (hItem, &tvItem, hNewItem); | |
31
92c102dd64a3
Added all 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 } 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
|
6496 for (int i=0; i<items.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
|
6497 TreeItem 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
|
6498 if (item !is null && item.handle !is hNewItem) { |
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:
219
diff
changeset
|
6499 tvItem.hItem = cast(HTREEITEM)item.handle; |
75 | 6500 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all 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 } |
92c102dd64a3
Added all 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 } |
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:
219
diff
changeset
|
6504 tvItem.hItem = cast(HTREEITEM)hNewItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6505 tvItem.state = OS.TVIS_SELECTED; |
75 | 6506 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
213 | 6507 OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6508 if ((wParam & OS.MK_SHIFT) !is 0) { |
75 | 6509 RECT rect1; |
6510 if (hAnchor is null) hAnchor = hNewItem; | |
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:
219
diff
changeset
|
6511 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false)) { |
75 | 6512 RECT rect2; |
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:
219
diff
changeset
|
6513 if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, false)) { |
213 | 6514 int flags = rect1.top < rect2.top ? OS.TVGN_NEXTVISIBLE : OS.TVGN_PREVIOUSVISIBLE; |
6515 tvItem.state = OS.TVIS_SELECTED; | |
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:
219
diff
changeset
|
6516 auto hItem = tvItem.hItem = cast(HTREEITEM)hAnchor; |
75 | 6517 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
213 | 6518 while (hItem !is hNewItem) { |
6519 tvItem.hItem = hItem; | |
6520 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); | |
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:
219
diff
changeset
|
6521 hItem = cast(HTREEITEM) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hItem); |
213 | 6522 } |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6523 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6524 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6525 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6526 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6527 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6528 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6529 if ((wParam & OS.MK_SHIFT) is 0) hAnchor = hNewItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6530 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6531 /* Issue notification */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6532 if (!gestureCompleted) { |
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:
219
diff
changeset
|
6533 tvItem.hItem = cast(HTREEITEM)hNewItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6534 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
75 | 6535 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6536 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
|
6537 event.item = _getItem (tvItem.hItem, tvItem.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
|
6538 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
|
6539 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6540 gestureCompleted = 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
|
6541 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6542 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6543 * 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
|
6544 * 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
|
6545 * to begin a drag/drop operation or marquee 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
|
6546 * 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
|
6547 * 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
|
6548 * 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
|
6549 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6550 if (dragStarted) { |
213 | 6551 sendDragEvent (1, OS.GET_X_LPARAM (lParam), 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
|
6552 } 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
|
6553 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
|
6554 if ((bits & OS.TVS_DISABLEDRAGDROP) 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
|
6555 sendMouseEvent (DWT.MouseUp, 1, handle, OS.WM_LBUTTONUP, 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
|
6556 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6557 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6558 dragStarted = false; |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6559 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
|
6560 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6561 |
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
|
6562 override LRESULT WM_MOUSEMOVE (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
|
6563 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
|
6564 LRESULT result = super.WM_MOUSEMOVE (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6565 if (result !is null) return result; |
213 | 6566 if (itemToolTipHandle !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
|
6567 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6568 * Bug in Windows. On some machines that do not have XBUTTONs, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6569 * the MK_XBUTTON1 and OS.MK_XBUTTON2 bits are sometimes 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
|
6570 * causing mouse capture to become stuck. The fix is to test |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6571 * for the extra buttons only when they exist. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6572 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6573 int mask = OS.MK_LBUTTON | OS.MK_MBUTTON | OS.MK_RBUTTON; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6574 if (display.xMouse) mask |= OS.MK_XBUTTON1 | OS.MK_XBUTTON2; |
213 | 6575 if ((wParam & mask) is 0) { |
6576 int x = OS.GET_X_LPARAM (lParam); | |
6577 int y = OS.GET_Y_LPARAM (lParam); | |
6578 int index; | |
6579 TreeItem item; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
6580 RECT* cellRect, itemRect; |
213 | 6581 if (findCell (x, y, item, index, cellRect, itemRect)) { |
6582 /* | |
6583 * Feature in Windows. When the new tool rectangle is | |
6584 * set using TTM_NEWTOOLRECT and the tooltip is visible, | |
6585 * Windows draws the tooltip right away and the sends | |
6586 * WM_NOTIFY with TTN_SHOW. This means that the tooltip | |
6587 * shows first at the wrong location and then moves to | |
6588 * the right one. The fix is to hide the tooltip window. | |
6589 */ | |
6590 if (OS.SendMessage (itemToolTipHandle, OS.TTM_GETCURRENTTOOL, 0, 0) is 0) { | |
6591 if (OS.IsWindowVisible (itemToolTipHandle)) { | |
6592 OS.ShowWindow (itemToolTipHandle, OS.SW_HIDE); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6593 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6594 } |
213 | 6595 TOOLINFO lpti; |
6596 lpti.cbSize = TOOLINFO.sizeof; | |
6597 lpti.hwnd = handle; | |
6598 lpti.uId = cast(int) handle; | |
6599 lpti.uFlags = OS.TTF_SUBCLASS | OS.TTF_TRANSPARENT; | |
6600 lpti.rect.left = cellRect.left; | |
6601 lpti.rect.top = cellRect.top; | |
6602 lpti.rect.right = cellRect.right; | |
6603 lpti.rect.bottom = cellRect.bottom; | |
6604 OS.SendMessage (itemToolTipHandle, OS.TTM_NEWTOOLRECT, 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
|
6605 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6606 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6607 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6608 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
|
6609 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6610 |
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
|
6611 override LRESULT WM_MOVE (int wParam, int lParam) { |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6612 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
|
6613 return super.WM_MOVE (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
|
6614 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6615 |
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
|
6616 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
|
6617 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6618 * Feature in Windows. The receiver uses 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
|
6619 * to initiate a drag/drop operation depending on how 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
|
6620 * user moves the mouse. If the user clicks the right button, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6621 * without moving the mouse, the tree consumes the corresponding |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6622 * WM_RBUTTONUP. The fix is to avoid calling the window proc 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
|
6623 * the tree. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6624 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6625 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
|
6626 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
|
6627 if (!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
|
6628 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
|
6629 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
|
6630 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6631 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
|
6632 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6633 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6634 * 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
|
6635 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6636 // 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
|
6637 setFocus (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6638 |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6639 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6640 * Feature in Windows. When the user selects a tree 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
|
6641 * with the right mouse button, the item 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
|
6642 * only as long as the user does not release or move 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
|
6643 * mouse. As soon as this happens, the selection snaps |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6644 * back to the previous selection. This behavior can 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
|
6645 * observed in the Explorer but is not instantly apparent |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6646 * because the Explorer explicitly sets the selection 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
|
6647 * the user chooses a menu item. If the user cancels 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
|
6648 * menu, the selection snaps back. The fix is 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
|
6649 * calling the window proc and do the selection ourselves. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6650 * This behavior is consistent with 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
|
6651 */ |
75 | 6652 TVHITTESTINFO lpht; |
213 | 6653 lpht.pt.x = OS.GET_X_LPARAM (lParam); |
6654 lpht.pt.y = OS.GET_Y_LPARAM (lParam); | |
75 | 6655 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); |
6656 if (lpht.hItem !is null) { | |
213 | 6657 bool fakeSelection = (style & DWT.FULL_SELECTION) !is 0; |
6658 if (!fakeSelection) { | |
6659 if (hooks (DWT.MeasureItem)) { | |
6660 fakeSelection = hitTestSelection (lpht.hItem, lpht.pt.x, lpht.pt.y); | |
6661 } else { | |
6662 int flags = OS.TVHT_ONITEMICON | OS.TVHT_ONITEMLABEL; | |
6663 fakeSelection = (lpht.flags & flags) !is 0; | |
6664 } | |
6665 } | |
6666 if (fakeSelection) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6667 if ((wParam & (OS.MK_CONTROL | OS.MK_SHIFT)) is 0) { |
75 | 6668 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6669 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_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
|
6670 tvItem.stateMask = OS.TVIS_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
|
6671 tvItem.hItem = lpht.hItem; |
75 | 6672 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6673 if ((tvItem.state & OS.TVIS_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
|
6674 ignoreSelect = 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
|
6675 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, 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
|
6676 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
|
6677 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, lpht.hItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6678 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6679 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6680 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6681 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6682 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
|
6683 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6684 |
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
|
6685 override LRESULT WM_PAINT (int wParam, int lParam) { |
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:
219
diff
changeset
|
6686 |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6687 if (shrink && !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
|
6688 /* Resize the item array to fit the last 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
|
6689 int count = items.length - 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
|
6690 while (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
|
6691 if (items [count] !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
|
6692 --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
|
6693 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6694 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
|
6695 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
|
6696 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
|
6697 TreeItem [] newItems = new TreeItem [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
|
6698 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
|
6699 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
|
6700 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6701 shrink = 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
|
6702 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6703 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
|
6704 bool doubleBuffer = true; |
213 | 6705 if (explorerTheme) { |
6706 int exStyle = OS.SendMessage (handle, OS.TVM_GETEXTENDEDSTYLE, 0, 0); | |
6707 if ((exStyle & OS.TVS_EX_DOUBLEBUFFER) !is 0) doubleBuffer = 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
|
6708 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6709 if (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
|
6710 GC gc = null; |
75 | 6711 HDC paintDC; |
6712 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
|
6713 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
|
6714 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
|
6715 GCData data = new GCData (); |
75 | 6716 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
|
6717 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
|
6718 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
|
6719 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
|
6720 } else { |
75 | 6721 paintDC = OS.BeginPaint (handle, &ps); |
6722 } | |
6723 int width = ps.rcPaint.right - ps.rcPaint.left; | |
6724 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
|
6725 if (width !is 0 && height !is 0) { |
75 | 6726 auto hDC = OS.CreateCompatibleDC (paintDC); |
6727 POINT lpPoint1, lpPoint2; | |
6728 OS.SetWindowOrgEx (hDC, ps.rcPaint.left, ps.rcPaint.top, &lpPoint1); | |
6729 OS.SetBrushOrgEx (hDC, ps.rcPaint.left, ps.rcPaint.top, &lpPoint2); | |
6730 auto hBitmap = OS.CreateCompatibleBitmap (paintDC, width, height); | |
219
9c2ceaa48046
Fix drawing bug for double buffered Tree.
Frank Benoit <benoit@tionex.de>
parents:
218
diff
changeset
|
6731 auto hOldBitmap = OS.SelectObject (hDC, hBitmap); |
75 | 6732 RECT rect; |
6733 OS.SetRect (&rect, ps.rcPaint.left, ps.rcPaint.top, ps.rcPaint.right, ps.rcPaint.bottom); | |
6734 drawBackground (hDC, &rect); | |
6735 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
|
6736 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
|
6737 OS.SetBrushOrgEx (hDC, lpPoint2.x, lpPoint2.y, null); |
75 | 6738 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
|
6739 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
|
6740 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
|
6741 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
|
6742 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
|
6743 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
|
6744 event.gc = gc; |
75 | 6745 event.x = ps.rcPaint.left; |
6746 event.y = ps.rcPaint.top; | |
6747 event.width = ps.rcPaint.right - ps.rcPaint.left; | |
6748 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
|
6749 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
|
6750 // 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
|
6751 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
|
6752 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6753 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6754 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
|
6755 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
|
6756 } else { |
75 | 6757 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
|
6758 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6759 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
|
6760 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6761 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6762 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
|
6763 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6764 |
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
|
6765 override LRESULT WM_PRINTCLIENT (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
|
6766 LRESULT result = super.WM_PRINTCLIENT (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6767 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
|
6768 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6769 * Feature in Windows. For some reason, when WM_PRINT 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
|
6770 * to capture an image of a hierarchy that contains a tree 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
|
6771 * columns, the clipping that is used to stop 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
|
6772 * from drawing on top of subsequent columns stops 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
|
6773 * column and the tree lines from drawing. This does not happen |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6774 * during WM_PAINT. The fix is to draw without clipping 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
|
6775 * then draw the rest of the columns on top. Since the drawing |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6776 * is happening in WM_PRINTCLIENT, the redrawing 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
|
6777 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6778 printClient = true; |
213 | 6779 int /*long*/ code = callWindowProc (handle, OS.WM_PRINTCLIENT, 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
|
6780 printClient = false; |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6781 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
|
6782 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6783 |
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
|
6784 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
|
6785 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6786 * Bug in Windows. When a tree item that has 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
|
6787 * with alpha is expanded or collapsed, the area where |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6788 * the image is drawn is not erased before it is 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
|
6789 * This means that the image gets darker each 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
|
6790 * The fix is to redraw 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
|
6791 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6792 * Feature in Windows. When multiple item have |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6793 * the TVIS_SELECTED state, Windows redraws only |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6794 * the focused item in the color used to show 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
|
6795 * selection when the tree loses or gains focus. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6796 * The fix is to force Windows to redraw 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
|
6797 * selection when focus is gained or lost. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6798 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6799 bool redraw = (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
|
6800 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
|
6801 if (!OS.IsWinCE && 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
|
6802 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
|
6803 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
|
6804 if ((bits & OS.TVS_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
|
6805 redraw = 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
|
6806 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6807 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6808 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6809 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6810 if (redraw) redrawSelection (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6811 return 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
|
6812 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6813 |
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
|
6814 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
|
6815 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:
82
diff
changeset
|
6816 if (result !is null) return result; |
75 | 6817 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
|
6818 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6819 * 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
|
6820 * 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
|
6821 * 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
|
6822 * 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
|
6823 * 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
|
6824 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6825 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
|
6826 OS.SendMessage (hwndHeader, 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
|
6827 } |
75 | 6828 if (itemToolTipHandle !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
|
6829 OS.SendMessage (itemToolTipHandle, 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
|
6830 } |
75 | 6831 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
|
6832 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
|
6833 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6834 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
|
6835 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6836 |
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
|
6837 override LRESULT WM_SETREDRAW (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
|
6838 LRESULT result = super.WM_SETREDRAW (wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6839 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
|
6840 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6841 * Bug in Windows. Under certain circumstances, 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
|
6842 * WM_SETREDRAW is used to turn off drawing 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
|
6843 * TVM_GETITEMRECT is sent to get the bounds of 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
|
6844 * that is not inside the client area, Windows segment |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6845 * faults. The fix is to call the default 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
|
6846 * rather than the default tree 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
|
6847 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6848 * NOTE: This problem is intermittent and happens 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
|
6849 * Windows Vista running under the theme manager. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6850 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6851 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { |
213 | 6852 int /*long*/ code = OS.DefWindowProc (handle, OS.WM_SETREDRAW, wParam, lParam); |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6853 return 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
|
6854 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6855 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
|
6856 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6857 |
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
|
6858 override LRESULT WM_SIZE (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
|
6859 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6860 * Bug in Windows. When TVS_NOHSCROLL is set 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
|
6861 * size of the tree is zero, the scroll bar is shown 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
|
6862 * next time the tree resizes. The fix is to hide 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
|
6863 * scroll bar every time the tree is resized. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6864 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6865 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
|
6866 if ((bits & OS.TVS_NOHSCROLL) !is 0) { |
117 | 6867 static if (!OS.IsWinCE) OS.ShowScrollBar (handle, OS.SB_HORZ, 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
|
6868 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6869 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6870 * Bug in Windows. On Vista, when 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
|
6871 * is used with a full selection tree, when the tree |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6872 * is resized to be smaller, the rounded right edge |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6873 * of the selected items is not drawn. The fix is 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
|
6874 * redraw the entire tree. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6875 */ |
213 | 6876 if (explorerTheme && (style & DWT.FULL_SELECTION) !is 0) { |
6877 OS.InvalidateRect (handle, null, 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
|
6878 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6879 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
|
6880 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
|
6881 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6882 |
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
|
6883 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
|
6884 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:
82
diff
changeset
|
6885 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
|
6886 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6887 * Bug in Windows. When the tree is using the explorer |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6888 * theme, it does not use COLOR_WINDOW_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
|
6889 * default foreground color. The fix is to explicitly |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6890 * set the 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
|
6891 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6892 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
|
6893 if (foreground is -1) setForegroundPixel (-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
|
6894 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6895 if ((style & DWT.CHECK) !is 0) setCheckboxImageList (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6896 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
|
6897 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6898 |
213 | 6899 override LRESULT WM_VSCROLL (int /*long*/ wParam, int /*long*/ lParam) { |
6900 bool fixScroll = false; | |
6901 if ((style & DWT.DOUBLE_BUFFERED) !is 0) { | |
6902 int code = OS.LOWORD (wParam); | |
6903 switch (code) { | |
6904 case OS.SB_TOP: | |
6905 case OS.SB_BOTTOM: | |
6906 case OS.SB_LINEDOWN: | |
6907 case OS.SB_LINEUP: | |
6908 case OS.SB_PAGEDOWN: | |
6909 case OS.SB_PAGEUP: | |
6910 fixScroll = (style & DWT.VIRTUAL) !is 0 || hooks (DWT.EraseItem) || hooks (DWT.PaintItem); | |
6911 break; | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
6912 default: |
213 | 6913 } |
6914 } | |
6915 if (fixScroll) { | |
6916 style &= ~DWT.DOUBLE_BUFFERED; | |
6917 if (explorerTheme) { | |
6918 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, OS.TVS_EX_DOUBLEBUFFER, 0); | |
6919 } | |
6920 } | |
6921 LRESULT result = super.WM_VSCROLL (wParam, lParam); | |
6922 if (fixScroll) { | |
6923 style |= DWT.DOUBLE_BUFFERED; | |
6924 if (explorerTheme) { | |
6925 OS.SendMessage (handle, OS.TVM_SETEXTENDEDSTYLE, OS.TVS_EX_DOUBLEBUFFER, OS.TVS_EX_DOUBLEBUFFER); | |
6926 } | |
6927 } | |
6928 if (result !is null) return result; | |
6929 return result; | |
6930 } | |
6931 | |
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
|
6932 override LRESULT wmColorChild (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
|
6933 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
|
6934 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
|
6935 return super.wmColorChild (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
|
6936 } |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6937 return new LRESULT ( cast(int) OS.GetStockObject (OS.NULL_BRUSH)); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6938 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6939 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6940 * Feature in Windows. Tree controls send WM_CTLCOLOREDIT |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6941 * to allow application code to change the default colors. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6942 * This is undocumented and conflicts with TVM_SETTEXTCOLOR |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6943 * and TVM_SETBKCOLOR, the documented way to do this. 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
|
6944 * fix is to ignore WM_CTLCOLOREDIT messages from trees. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6945 */ |
108
6f75fdfa1bcd
Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents:
82
diff
changeset
|
6946 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
|
6947 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6948 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6949 override LRESULT wmNotify (NMHDR* hdr, int wParam, int lParam) { |
213 | 6950 if (hdr.hwndFrom is itemToolTipHandle) { |
6951 LRESULT result = wmNotifyToolTip (hdr, wParam, lParam); | |
6952 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
|
6953 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6954 if (hdr.hwndFrom is hwndHeader) { |
213 | 6955 LRESULT result = wmNotifyHeader (hdr, wParam, lParam); |
6956 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
|
6957 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6958 return super.wmNotify (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
|
6959 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6960 |
73
42fc35b18200
TreeItem and some author comments
Frank Benoit <benoit@tionex.de>
parents:
54
diff
changeset
|
6961 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
|
6962 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
|
6963 case OS.TVN_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
|
6964 case OS.TVN_GETDISPINFOW: { |
75 | 6965 NMTVDISPINFO* lptvdi = cast(NMTVDISPINFO*)lParam; |
6966 //OS.MoveMemory (lptvdi, lParam, NMTVDISPINFO.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
|
6967 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
|
6968 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6969 * Feature in Windows. When a new tree 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
|
6970 * using TVM_INSERTITEM, a TVN_GETDISPINFO is sent before |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6971 * TVM_INSERTITEM returns and before the item is added 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
|
6972 * the items array. The fix is to check for 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
|
6973 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6974 * NOTE: This only happens on XP with the version 6.00 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
|
6975 * 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
|
6976 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6977 bool checkVisible = 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
|
6978 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6979 * When an item is being deleted from a virtual tree, 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
|
6980 * 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
|
6981 * 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
|
6982 * 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
|
6983 * 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
|
6984 * 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
|
6985 * 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
|
6986 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6987 if (!ignoreShrink) { |
75 | 6988 if (items !is null && lptvdi.item.lParam !is -1) { |
6989 if (items [lptvdi.item.lParam] !is null && items [lptvdi.item.lParam].cached) { | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6990 checkVisible = 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
|
6991 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6992 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6993 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6994 if (checkVisible) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6995 if (drawCount !is 0 || !OS.IsWindowVisible (handle)) break; |
75 | 6996 RECT itemRect; |
213 | 6997 if (!OS.TreeView_GetItemRect (handle, lptvdi.item.hItem, &itemRect, 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
|
6998 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
|
6999 } |
75 | 7000 RECT rect; |
7001 OS.GetClientRect (handle, &rect); | |
7002 if (!OS.IntersectRect (&rect, &rect, &itemRect)) 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
|
7003 if (ignoreShrink) { |
75 | 7004 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
|
7005 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
|
7006 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7007 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7008 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7009 if (items 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
|
7010 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7011 * Bug in Windows. If the lParam field of TVITEM |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7012 * is changed during custom draw using TVM_SETITEM, |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7013 * the lItemlParam field of the NMTVCUSTOMDRAW struct |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7014 * is not updated until the next custom draw. 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
|
7015 * fix is to query the field from the item 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
|
7016 * of using the struct. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7017 */ |
75 | 7018 int id = lptvdi.item.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
|
7019 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
|
7020 if (id is -1) { |
75 | 7021 TVITEM tvItem; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7022 tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; |
75 | 7023 tvItem.hItem = lptvdi.item.hItem; |
7024 OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7025 id = tvItem.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
|
7026 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7027 } |
75 | 7028 TreeItem item = _getItem (lptvdi.item.hItem, id); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7029 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7030 * Feature in Windows. When a new tree 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
|
7031 * using TVM_INSERTITEM, a TVN_GETDISPINFO is sent before |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7032 * TVM_INSERTITEM returns and before the item is added 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
|
7033 * the items array. The fix is to check for 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
|
7034 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7035 * NOTE: This only happens on XP with the version 6.00 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
|
7036 * 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
|
7037 * |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7038 * Feature in Windows. When TVM_DELETEITEM is called 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
|
7039 * TVI_ROOT to remove all items from a tree, under certain |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7040 * circumstances, the tree sends TVN_GETDISPINFO for 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
|
7041 * that are about to be disposed. 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
|
7042 * disposed 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
|
7043 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7044 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
|
7045 if (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
|
7046 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
|
7047 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
|
7048 if (!checkData (item, 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
|
7049 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7050 if (painted) 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
|
7051 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7052 int index = 0; |
75 | 7053 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
|
7054 index = 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
|
7055 } |
75 | 7056 if ((lptvdi.item.mask & OS.TVIF_TEXT) !is 0) { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
7057 String string = 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
|
7058 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
|
7059 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
|
7060 } else { |
212
ab60f3309436
reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents:
117
diff
changeset
|
7061 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
|
7062 if (strings !is null) string = strings [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
|
7063 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7064 if (string !is null) { |
75 | 7065 TCHAR[] buffer = StrToTCHARs (getCodePage (), string, false); |
7066 int byteCount = Math.min (buffer.length, lptvdi.item.cchTextMax - 1) * TCHAR.sizeof; | |
7067 OS.MoveMemory (lptvdi.item.pszText, buffer.ptr, byteCount); | |
7068 int st = byteCount/TCHAR.sizeof; | |
7069 lptvdi.item.pszText[ st .. st+1 ] = 0; | |
7070 //OS.MoveMemory (lptvdi.pszText + byteCount, new byte [TCHAR.sizeof], TCHAR.sizeof); | |
7071 lptvdi.item.cchTextMax = Math.min (lptvdi.item.cchTextMax, string.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
|
7072 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7073 } |
75 | 7074 if ((lptvdi.item.mask & (OS.TVIF_IMAGE | OS.TVIF_SELECTEDIMAGE)) !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
|
7075 Image 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
|
7076 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
|
7077 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
|
7078 } 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
|
7079 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
|
7080 if (images !is null) image = images [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
|
7081 } |
75 | 7082 lptvdi.item.iImage = lptvdi.item.iSelectedImage = OS.I_IMAGENONE; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7083 if (image !is null) { |
75 | 7084 lptvdi.item.iImage = lptvdi.item.iSelectedImage = imageIndex (image, index); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7085 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7086 if (explorerTheme && 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
|
7087 if (findImageControl () !is null) { |
75 | 7088 lptvdi.item.iImage = lptvdi.item.iSelectedImage = OS.I_IMAGENONE; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7089 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7090 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7091 } |
75 | 7092 //OS.MoveMemory (cast(void*)lParam, lptvdi, NMTVDISPINFO.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
|
7093 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
|
7094 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7095 case OS.NM_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
|
7096 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
|
7097 if (hooks (DWT.MeasureItem)) { |
75 | 7098 if (hwndHeader is null) createParent (); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7099 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7100 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
|
7101 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
|
7102 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
|
7103 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
|
7104 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7105 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7106 } |
75 | 7107 NMTVCUSTOMDRAW* nmcd = cast(NMTVCUSTOMDRAW*)lParam; |
7108 //OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof); | |
7109 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
|
7110 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
|
7111 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
|
7112 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
|
7113 case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (nmcd, wParam, lParam); |
82 | 7114 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
|
7115 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7116 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
|
7117 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7118 case OS.NM_DBLCLK: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7119 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7120 * When the user double clicks on a tree 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
|
7121 * or a line beside the item, 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
|
7122 * for the tree collapses or expand the branch. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7123 * When application code associates an action |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7124 * with double clicking, then the tree expand |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7125 * is unexpected and unwanted. 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
|
7126 * avoid the operation by testing to see whether |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7127 * the mouse was inside a tree 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
|
7128 */ |
213 | 7129 if (hooks (DWT.MeasureItem)) return LRESULT.ONE; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7130 if (hooks (DWT.DefaultSelection)) { |
75 | 7131 POINT 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
|
7132 int pos = OS.GetMessagePos (); |
213 | 7133 OS.POINTSTOPOINT (pt, pos); |
75 | 7134 OS.ScreenToClient (handle, &pt); |
7135 TVHITTESTINFO lpht; | |
7136 lpht.pt.x = pt.x; | |
7137 lpht.pt.y = pt.y; | |
7138 OS.SendMessage (handle, OS.TVM_HITTEST, 0, &lpht); | |
7139 if (lpht.hItem !is null && (lpht.flags & OS.TVHT_ONITEM) !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
|
7140 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
|
7141 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7142 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7143 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
|
7144 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7145 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7146 * Bug in Windows. On Vista, when TVM_SELECTITEM is 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
|
7147 * with TVGN_CARET in order to set the selection, for 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
|
7148 * reason, Windows deselects the previous two items 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
|
7149 * were selected. The fix is to stop the selection 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
|
7150 * changing on all but the item that is supposed 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
|
7151 * 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
|
7152 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7153 case OS.TVN_ITEMCHANGINGA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7154 case OS.TVN_ITEMCHANGINGW: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7155 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
|
7156 if ((style & DWT.MULTI) !is 0) { |
75 | 7157 if (hSelect !is null) { |
7158 NMTVITEMCHANGE* pnm = cast(NMTVITEMCHANGE*)lParam; | |
7159 //OS.MoveMemory (pnm, lParam, NMTVITEMCHANGE.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
|
7160 if (hSelect is pnm.hItem) 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
|
7161 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
|
7162 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7163 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7164 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7165 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
|
7166 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7167 case OS.TVN_SELCHANGINGA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7168 case OS.TVN_SELCHANGINGW: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7169 if ((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
|
7170 if (lockSelection) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7171 /* Save the old selection state for both items */ |
213 | 7172 auto treeView = cast(NMTREEVIEW*)lParam; |
7173 TVITEM* tvItem = &treeView.itemOld; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7174 oldSelected = (tvItem.state & OS.TVIS_SELECTED) !is 0; |
213 | 7175 tvItem = &treeView.itemNew; |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7176 newSelected = (tvItem.state & OS.TVIS_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
|
7177 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7178 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7179 if (!ignoreSelect && !ignoreDeselect) { |
75 | 7180 hAnchor = 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
|
7181 if ((style & DWT.MULTI) !is 0) 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
|
7182 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7183 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
|
7184 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7185 case OS.TVN_SELCHANGEDA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7186 case OS.TVN_SELCHANGEDW: { |
213 | 7187 NMTREEVIEW* treeView = 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
|
7188 if ((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
|
7189 if (lockSelection) { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7190 /* Restore the old selection state of both 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
|
7191 if (oldSelected) { |
213 | 7192 if (treeView is null) { |
7193 treeView = cast(NMTREEVIEW*)lParam; | |
7194 } | |
7195 TVITEM tvItem = treeView.itemOld; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7196 tvItem.mask = OS.TVIF_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
|
7197 tvItem.stateMask = OS.TVIS_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
|
7198 tvItem.state = OS.TVIS_SELECTED; |
75 | 7199 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7200 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7201 if (!newSelected && ignoreSelect) { |
213 | 7202 if (treeView is null) { |
7203 treeView = cast(NMTREEVIEW*)lParam; | |
7204 } | |
7205 TVITEM tvItem = treeView.itemNew; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7206 tvItem.mask = OS.TVIF_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
|
7207 tvItem.stateMask = OS.TVIS_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
|
7208 tvItem.state = 0; |
75 | 7209 OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7210 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7211 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7212 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7213 if (!ignoreSelect) { |
213 | 7214 if (treeView is null) { |
7215 treeView = cast(NMTREEVIEW*)lParam; | |
7216 } | |
7217 TVITEM tvItem = treeView.itemNew; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7218 hAnchor = tvItem.hItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7219 Event event = new Event (); |
75 | 7220 event.item = _getItem (&tvItem.hItem, tvItem.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
|
7221 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
|
7222 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7223 updateScrollBar (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7224 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
|
7225 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7226 case OS.TVN_ITEMEXPANDINGA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7227 case OS.TVN_ITEMEXPANDINGW: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7228 bool runExpanded = 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
|
7229 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
|
7230 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) 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
|
7231 if (findImageControl () !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
|
7232 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
|
7233 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7234 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7235 * Bug in Windows. When TVM_SETINSERTMARK is used to 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
|
7236 * an insert mark for a tree and an item is expanded or |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7237 * collapsed near the insert mark, the tree does not 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
|
7238 * the insert mark properly. The fix is to hide and 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
|
7239 * the insert mark whenever an item is expanded or collapsed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7240 */ |
75 | 7241 if (hInsert !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
|
7242 OS.SendMessage (handle, OS.TVM_SETINSERTMARK, 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
|
7243 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7244 if (!ignoreExpand) { |
213 | 7245 NMTREEVIEW* treeView = cast(NMTREEVIEW*)lParam; |
7246 | |
7247 TVITEM* tvItem = &treeView.itemNew; | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7248 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7249 * Feature in Windows. In some cases, TVM_ITEMEXPANDING |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7250 * is sent from within TVM_DELETEITEM for the tree 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
|
7251 * being destroyed. By the time the message 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
|
7252 * the item has already been removed from the list 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
|
7253 * items. The fix is to check for 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
|
7254 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7255 if (items 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
|
7256 TreeItem item = _getItem (tvItem.hItem, tvItem.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
|
7257 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
|
7258 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
|
7259 event.item = item; |
213 | 7260 switch (treeView.action) { |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7261 case OS.TVE_EXPAND: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7262 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7263 * Bug in Windows. When the numeric keypad asterisk |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7264 * key is used to expand every item in the tree, 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
|
7265 * sends TVN_ITEMEXPANDING to items in the tree 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
|
7266 * have already been expanded. 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
|
7267 * that the item is already expanded and ignore 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
|
7268 * notification. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7269 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7270 if ((tvItem.state & OS.TVIS_EXPANDED) 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
|
7271 sendEvent (DWT.Expand, 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
|
7272 if (isDisposed ()) 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
|
7273 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7274 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
|
7275 case OS.TVE_COLLAPSE: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7276 sendEvent (DWT.Collapse, 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
|
7277 if (isDisposed ()) 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
|
7278 break; |
82 | 7279 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
|
7280 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7281 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7282 * Bug in Windows. When all of the items are deleted 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
|
7283 * TVN_ITEMEXPANDING, Windows does not send TVN_ITEMEXPANDED. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7284 * The fix is to detect this case and run the TVN_ITEMEXPANDED |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7285 * code in 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
|
7286 */ |
75 | 7287 auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, tvItem.hItem); |
7288 runExpanded = hFirstItem 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
|
7289 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7290 if (!runExpanded) 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
|
7291 //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
|
7292 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7293 case OS.TVN_ITEMEXPANDEDA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7294 case OS.TVN_ITEMEXPANDEDW: { |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7295 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
|
7296 if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) 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
|
7297 if (findImageControl () !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
|
7298 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
|
7299 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
|
7300 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7301 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7302 * Bug in Windows. When TVM_SETINSERTMARK is used to 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
|
7303 * an insert mark for a tree and an item is expanded or |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7304 * collapsed near the insert mark, the tree does not 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
|
7305 * the insert mark properly. The fix is to hide and 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
|
7306 * the insert mark whenever an item is expanded or collapsed. |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7307 */ |
75 | 7308 if (hInsert !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
|
7309 OS.SendMessage (handle, OS.TVM_SETINSERTMARK, insertAfter ? 1 : 0, hInsert); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7310 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7311 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7312 * Bug in Windows. When a tree item that has 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
|
7313 * with alpha is expanded or collapsed, the area where |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7314 * the image is drawn is not erased before it is 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
|
7315 * This means that the image gets darker each 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
|
7316 * The fix is to redraw 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
|
7317 */ |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7318 if (!OS.IsWinCE && 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
|
7319 if (imageList !is null) { |
213 | 7320 NMTREEVIEW* treeView = cast(NMTREEVIEW*)lParam; |
7321 | |
7322 TVITEM* tvItem = &treeView.itemNew; | |
75 | 7323 if (tvItem.hItem !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
|
7324 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
|
7325 if ((bits & OS.TVS_FULLROWSELECT) is 0) { |
75 | 7326 RECT rect; |
213 | 7327 if (OS.TreeView_GetItemRect (handle, tvItem.hItem, &rect, false)) { |
7328 OS.InvalidateRect (handle, &rect, true); | |
7329 } | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7330 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7331 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7332 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7333 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7334 updateScrollBar (); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7335 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
|
7336 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7337 case OS.TVN_BEGINDRAGA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7338 case OS.TVN_BEGINDRAGW: |
213 | 7339 if (OS.GetKeyState (OS.VK_LBUTTON) >= 0) break; |
7340 //FALL THROUGH | |
31
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7341 case OS.TVN_BEGINRDRAGA: |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7342 case OS.TVN_BEGINRDRAGW: { |
213 | 7343 dragStarted = true; |
7344 NMTREEVIEW* treeView = cast(NMTREEVIEW*)lParam; | |
7345 TVITEM* tvItem = &treeView.itemNew; | |
75 | 7346 if (tvItem.hItem !is null && (tvItem.state & OS.TVIS_SELECTED) 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
|
7347 hSelect = tvItem.hItem; |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7348 ignoreSelect = ignoreDeselect = 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
|
7349 OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_CARET, tvItem.hItem); |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7350 ignoreSelect = ignoreDeselect = false; |
75 | 7351 hSelect = 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
|
7352 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7353 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
|
7354 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7355 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
|
7356 /* |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7357 * Feature in 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
|
7358 * 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
|
7359 * 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
|
7360 * 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
|
7361 * 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
|
7362 * 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
|
7363 * 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
|
7364 */ |
77 | 7365 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
|
7366 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
|
7367 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
|
7368 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7369 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
|
7370 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7371 case OS.GN_CONTEXTMENU: { |
77 | 7372 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
|
7373 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
|
7374 if (hasMenu || hooks (DWT.MenuDetect)) { |
75 | 7375 NMRGINFO* nmrg = cast(NMRGINFO*)lParam; |
7376 //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
|
7377 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
|
7378 gestureCompleted = 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
|
7379 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
|
7380 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7381 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7382 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
|
7383 } |
82 | 7384 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
|
7385 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7386 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
|
7387 } |
92c102dd64a3
Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7388 |
213 | 7389 LRESULT wmNotifyHeader (NMHDR* hdr, int /*long*/ wParam, int /*long*/ lParam) { |
7390 /* | |
7391 * Feature in Windows. On NT, the automatically created | |
7392 * header control is created as a UNICODE window, not an | |
7393 * ANSI window despite the fact that the parent is created | |
7394 * as an ANSI window. This means that it sends UNICODE | |
7395 * notification messages to the parent window on NT for | |
7396 * no good reason. The data and size in the NMHEADER and | |
7397 * HDITEM structs is identical between the platforms so no | |
7398 * different message is actually necessary. Despite this, | |
7399 * Windows sends different messages. The fix is to look | |
7400 * for both messages, despite the platform. This works | |
7401 * because only one will be sent on either platform, never | |
7402 * both. | |
7403 */ | |
7404 switch (hdr.code) { | |
7405 case OS.HDN_BEGINTRACKW: | |
7406 case OS.HDN_BEGINTRACKA: | |
7407 case OS.HDN_DIVIDERDBLCLICKW: | |
7408 case OS.HDN_DIVIDERDBLCLICKA: { | |
7409 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7410 TreeColumn column = columns [phdn.iItem]; | |
7411 if (column !is null && !column.getResizable ()) { | |
7412 return LRESULT.ONE; | |
7413 } | |
7414 ignoreColumnMove = true; | |
7415 switch (hdr.code) { | |
7416 case OS.HDN_DIVIDERDBLCLICKW: | |
7417 case OS.HDN_DIVIDERDBLCLICKA: | |
7418 if (column !is null) column.pack (); | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
7419 default: |
213 | 7420 } |
7421 break; | |
7422 } | |
7423 case OS.NM_RELEASEDCAPTURE: { | |
7424 if (!ignoreColumnMove) { | |
7425 for (int i=0; i<columnCount; i++) { | |
7426 TreeColumn column = columns [i]; | |
7427 column.updateToolTip (i); | |
7428 } | |
7429 updateImageList (); | |
7430 } | |
7431 ignoreColumnMove = false; | |
7432 break; | |
7433 } | |
7434 case OS.HDN_BEGINDRAG: { | |
7435 if (ignoreColumnMove) return LRESULT.ONE; | |
7436 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7437 if (phdn.iItem !is -1) { | |
7438 TreeColumn column = columns [phdn.iItem]; | |
7439 if (column !is null && !column.getMoveable ()) { | |
7440 ignoreColumnMove = true; | |
7441 return LRESULT.ONE; | |
7442 } | |
7443 } | |
7444 break; | |
7445 } | |
7446 case OS.HDN_ENDDRAG: { | |
7447 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7448 if (cast(int)phdn.iItem !is -1 && phdn.pitem !is null) { | |
7449 HDITEM* pitem = cast(HDITEM*)phdn.pitem; | |
7450 if ((pitem.mask & OS.HDI_ORDER) !is 0 && pitem.iOrder !is -1) { | |
7451 int [] order = new int [columnCount]; | |
7452 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, columnCount, order.ptr); | |
7453 int index = 0; | |
7454 while (index < order.length) { | |
7455 if (order [index] is phdn.iItem) break; | |
7456 index++; | |
7457 } | |
7458 if (index is order.length) index = 0; | |
7459 if (index is pitem.iOrder) break; | |
7460 int start = Math.min (index, pitem.iOrder); | |
7461 int end = Math.max (index, pitem.iOrder); | |
7462 RECT rect, headerRect; | |
7463 OS.GetClientRect (handle, &rect); | |
7464 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, order [start], &headerRect); | |
7465 rect.left = Math.max (rect.left, headerRect.left); | |
7466 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, order [end], &headerRect); | |
7467 rect.right = Math.min (rect.right, headerRect.right); | |
7468 OS.InvalidateRect (handle, &rect, true); | |
7469 ignoreColumnMove = false; | |
7470 for (int i=start; i<=end; i++) { | |
7471 TreeColumn column = columns [order [i]]; | |
7472 if (!column.isDisposed ()) { | |
7473 column.postEvent (DWT.Move); | |
7474 } | |
7475 } | |
7476 } | |
7477 } | |
7478 break; | |
7479 } | |
7480 case OS.HDN_ITEMCHANGINGW: | |
7481 case OS.HDN_ITEMCHANGINGA: { | |
7482 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7483 if (phdn.pitem !is null) { | |
7484 HDITEM* newItem = cast(HDITEM*)phdn.pitem; | |
7485 if ((newItem.mask & OS.HDI_WIDTH) !is 0) { | |
7486 RECT rect; | |
7487 OS.GetClientRect (handle, &rect); | |
7488 HDITEM oldItem; | |
7489 oldItem.mask = OS.HDI_WIDTH; | |
7490 OS.SendMessage (hwndHeader, OS.HDM_GETITEM, phdn.iItem, &oldItem); | |
7491 int deltaX = newItem.cxy - oldItem.cxy; | |
7492 RECT headerRect; | |
7493 OS.SendMessage (hwndHeader, OS.HDM_GETITEMRECT, phdn.iItem, &headerRect); | |
7494 int gridWidth = linesVisible ? GRID_WIDTH : 0; | |
7495 rect.left = headerRect.right - gridWidth; | |
7496 int newX = rect.left + deltaX; | |
7497 rect.right = Math.max (rect.right, rect.left + Math.abs (deltaX)); | |
7498 if (explorerTheme || (findImageControl () !is null || hooks (DWT.MeasureItem) || hooks (DWT.EraseItem) || hooks (DWT.PaintItem))) { | |
7499 rect.left -= OS.GetSystemMetrics (OS.SM_CXFOCUSBORDER); | |
7500 OS.InvalidateRect (handle, &rect, true); | |
7501 OS.OffsetRect (&rect, deltaX, 0); | |
7502 OS.InvalidateRect (handle, &rect, true); | |
7503 } else { | |
7504 int flags = OS.SW_INVALIDATE | OS.SW_ERASE; | |
7505 OS.ScrollWindowEx (handle, deltaX, 0, &rect, null, null, null, flags); | |
7506 } | |
7507 if (OS.SendMessage (hwndHeader, OS.HDM_ORDERTOINDEX, phdn.iItem, 0) !is 0) { | |
7508 rect.left = headerRect.left; | |
7509 rect.right = newX; | |
7510 OS.InvalidateRect (handle, &rect, true); | |
7511 } | |
7512 setScrollWidth (); | |
7513 } | |
7514 } | |
7515 break; | |
7516 } | |
7517 case OS.HDN_ITEMCHANGEDW: | |
7518 case OS.HDN_ITEMCHANGEDA: { | |
7519 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7520 if (phdn.pitem !is null) { | |
7521 HDITEM* pitem = cast(HDITEM*)phdn.pitem; | |
7522 if ((pitem.mask & OS.HDI_WIDTH) !is 0) { | |
7523 if (ignoreColumnMove) { | |
7524 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) { | |
7525 int flags = OS.RDW_UPDATENOW | OS.RDW_ALLCHILDREN; | |
7526 OS.RedrawWindow (handle, null, null, flags); | |
7527 } else { | |
7528 if ((style & DWT.DOUBLE_BUFFERED) is 0) { | |
7529 int oldStyle = style; | |
7530 style |= DWT.DOUBLE_BUFFERED; | |
7531 OS.UpdateWindow (handle); | |
7532 style = oldStyle; | |
7533 } | |
7534 } | |
7535 } | |
7536 TreeColumn column = columns [phdn.iItem]; | |
7537 if (column !is null) { | |
7538 column.updateToolTip (phdn.iItem); | |
7539 column.sendEvent (DWT.Resize); | |
7540 if (isDisposed ()) return LRESULT.ZERO; | |
7541 TreeColumn [] newColumns = new TreeColumn [columnCount]; | |
7542 System.arraycopy (columns, 0, newColumns, 0, columnCount); | |
7543 int [] order = new int [columnCount]; | |
7544 OS.SendMessage (hwndHeader, OS.HDM_GETORDERARRAY, columnCount, order.ptr); | |
7545 bool moved = false; | |
7546 for (int i=0; i<columnCount; i++) { | |
7547 TreeColumn nextColumn = newColumns [order [i]]; | |
7548 if (moved && !nextColumn.isDisposed ()) { | |
7549 nextColumn.updateToolTip (order [i]); | |
7550 nextColumn.sendEvent (DWT.Move); | |
7551 } | |
7552 if (nextColumn is column) moved = true; | |
7553 } | |
7554 } | |
7555 } | |
7556 setScrollWidth (); | |
7557 } | |
7558 break; | |
7559 } | |
7560 case OS.HDN_ITEMCLICKW: | |
7561 case OS.HDN_ITEMCLICKA: { | |
7562 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7563 TreeColumn column = columns [phdn.iItem]; | |
7564 if (column !is null) { | |
7565 column.postEvent (DWT.Selection); | |
7566 } | |
7567 break; | |
7568 } | |
7569 case OS.HDN_ITEMDBLCLICKW: | |
7570 case OS.HDN_ITEMDBLCLICKA: { | |
7571 NMHEADER* phdn = cast(NMHEADER*)lParam; | |
7572 TreeColumn column = columns [phdn.iItem]; | |
7573 if (column !is null) { | |
7574 column.postEvent (DWT.DefaultSelection); | |
7575 } | |
7576 break; | |
7577 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
7578 default: |
213 | 7579 } |
7580 return null; | |
7581 } | |
7582 | |
7583 LRESULT wmNotifyToolTip (NMHDR* hdr, int /*long*/ wParam, int /*long*/ lParam) { | |
7584 if (OS.IsWinCE) return null; | |
7585 switch (hdr.code) { | |
7586 case OS.NM_CUSTOMDRAW: { | |
7587 NMTTCUSTOMDRAW* nmcd = cast(NMTTCUSTOMDRAW*)lParam; | |
7588 return wmNotifyToolTip (nmcd, lParam); | |
7589 } | |
7590 case OS.TTN_SHOW: { | |
7591 LRESULT result = super.wmNotify (hdr, wParam, lParam); | |
7592 if (result !is null) return result; | |
7593 int pos = OS.GetMessagePos (); | |
7594 POINT pt; | |
7595 OS.POINTSTOPOINT (pt, pos); | |
7596 OS.ScreenToClient (handle, &pt); | |
7597 int index; | |
7598 TreeItem item; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7599 RECT* cellRect, itemRect; |
213 | 7600 if (findCell (pt.x, pt.y, item, index, cellRect, itemRect)) { |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7601 RECT* toolRect = toolTipRect (itemRect); |
213 | 7602 OS.MapWindowPoints (handle, null, cast(POINT*)toolRect, 2); |
7603 int width = toolRect.right - toolRect.left; | |
7604 int height = toolRect.bottom - toolRect.top; | |
7605 int flags = OS.SWP_NOACTIVATE | OS.SWP_NOZORDER | OS.SWP_NOSIZE; | |
7606 if (isCustomToolTip ()) flags &= ~OS.SWP_NOSIZE; | |
7607 SetWindowPos (itemToolTipHandle, null, toolRect.left, toolRect.top, width, height, flags); | |
7608 return LRESULT.ONE; | |
7609 } | |
7610 return result; | |
7611 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
7612 default: |
213 | 7613 } |
7614 return null; | |
7615 } | |
7616 | |
7617 LRESULT wmNotifyToolTip (NMTTCUSTOMDRAW* nmcd, int /*long*/ lParam) { | |
7618 if (OS.IsWinCE) return null; | |
7619 switch (nmcd.nmcd.dwDrawStage) { | |
7620 case OS.CDDS_PREPAINT: { | |
7621 if (isCustomToolTip ()) { | |
7622 //TEMPORARY CODE | |
7623 //nmcd.uDrawFlags |= OS.DT_CALCRECT; | |
7624 //OS.MoveMemory (lParam, nmcd, NMTTCUSTOMDRAW.sizeof); | |
7625 if (!OS.IsWinCE && OS.WIN32_VERSION < OS.VERSION (6, 0)) { | |
7626 OS.SetTextColor (nmcd.nmcd.hdc, OS.GetSysColor (OS.COLOR_INFOBK)); | |
7627 } | |
7628 return new LRESULT (OS.CDRF_NOTIFYPOSTPAINT | OS.CDRF_NEWFONT); | |
7629 } | |
7630 break; | |
7631 } | |
7632 case OS.CDDS_POSTPAINT: { | |
7633 if (!OS.IsWinCE && OS.WIN32_VERSION < OS.VERSION (6, 0)) { | |
7634 OS.SetTextColor (nmcd.nmcd.hdc, OS.GetSysColor (OS.COLOR_INFOTEXT)); | |
7635 } | |
7636 if (OS.SendMessage (itemToolTipHandle, OS.TTM_GETCURRENTTOOL, 0, 0) !is 0) { | |
7637 TOOLINFO lpti; | |
7638 lpti.cbSize = TOOLINFO.sizeof; | |
7639 if (OS.SendMessage (itemToolTipHandle, OS.TTM_GETCURRENTTOOL, 0, cast(int)&lpti) !is 0) { | |
7640 int index; | |
7641 TreeItem item; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7642 RECT* cellRect, itemRect; |
213 | 7643 int pos = OS.GetMessagePos (); |
7644 POINT pt; | |
7645 OS.POINTSTOPOINT (pt, pos); | |
7646 OS.ScreenToClient (handle, &pt); | |
7647 if (findCell (pt.x, pt.y, item, index, cellRect, itemRect)) { | |
7648 auto hDC = OS.GetDC (handle); | |
7649 auto hFont = item.fontHandle (index); | |
7650 if (hFont is cast(HFONT)-1) hFont = cast(HFONT) OS.SendMessage (handle, OS.WM_GETFONT, 0, 0); | |
7651 HFONT oldFont = OS.SelectObject (hDC, hFont); | |
7652 LRESULT result = null; | |
7653 bool drawForeground = true; | |
7654 cellRect = item.getBounds (index, true, true, false, false, false, hDC); | |
7655 if (hooks (DWT.EraseItem)) { | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7656 Event event = sendEraseItemEvent (item, nmcd, index, cellRect); |
213 | 7657 if (isDisposed () || item.isDisposed ()) break; |
7658 if (event.doit) { | |
7659 drawForeground = (event.detail & DWT.FOREGROUND) !is 0; | |
7660 } else { | |
7661 drawForeground = false; | |
7662 } | |
7663 } | |
7664 if (drawForeground) { | |
7665 int nSavedDC = OS.SaveDC (nmcd.nmcd.hdc); | |
7666 int gridWidth = getLinesVisible () ? Table.GRID_WIDTH : 0; | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7667 RECT* insetRect = toolTipInset (cellRect); |
213 | 7668 OS.SetWindowOrgEx (nmcd.nmcd.hdc, insetRect.left, insetRect.top, null); |
7669 GCData data = new GCData (); | |
7670 data.device = display; | |
7671 data.foreground = OS.GetTextColor (nmcd.nmcd.hdc); | |
7672 data.background = OS.GetBkColor (nmcd.nmcd.hdc); | |
7673 data.font = Font.win32_new (display, hFont); | |
7674 GC gc = GC.win32_new (nmcd.nmcd.hdc, data); | |
7675 int x = cellRect.left + INSET; | |
7676 if (index !is 0) x -= gridWidth; | |
7677 Image image = item.getImage (index); | |
7678 if (image !is null || index is 0) { | |
7679 Point size = getImageSize (); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7680 RECT* imageRect = item.getBounds (index, false, true, false, false, false, hDC); |
213 | 7681 if (imageList is null) size.x = imageRect.right - imageRect.left; |
7682 if (image !is null) { | |
7683 Rectangle rect = image.getBounds (); | |
7684 gc.drawImage (image, rect.x, rect.y, rect.width, rect.height, x, imageRect.top, size.x, size.y); | |
7685 x += INSET + (index is 0 ? 1 : 0); | |
7686 } | |
7687 x += size.x; | |
7688 } else { | |
7689 x += INSET; | |
7690 } | |
7691 String string = item.getText (index); | |
7692 if (string !is null) { | |
7693 int flags = OS.DT_NOPREFIX | OS.DT_SINGLELINE | OS.DT_VCENTER; | |
7694 TreeColumn column = columns !is null ? columns [index] : null; | |
7695 if (column !is null) { | |
7696 if ((column.style & DWT.CENTER) !is 0) flags |= OS.DT_CENTER; | |
7697 if ((column.style & DWT.RIGHT) !is 0) flags |= OS.DT_RIGHT; | |
7698 } | |
7699 TCHAR[] buffer = StrToTCHARs (getCodePage (), string, false); | |
7700 RECT textRect; | |
7701 OS.SetRect (&textRect, x, cellRect.top, cellRect.right, cellRect.bottom); | |
7702 OS.DrawText (nmcd.nmcd.hdc, buffer.ptr, buffer.length, &textRect, flags); | |
7703 } | |
7704 gc.dispose (); | |
7705 OS.RestoreDC (nmcd.nmcd.hdc, nSavedDC); | |
7706 } | |
7707 if (hooks (DWT.PaintItem)) { | |
7708 itemRect = item.getBounds (index, true, true, false, false, false, hDC); | |
218
c749c13479ef
rebuild some function to work again with heap RECT. Also some overrides
Frank Benoit <benoit@tionex.de>
parents:
214
diff
changeset
|
7709 sendPaintItemEvent (item, nmcd, index, itemRect); |
213 | 7710 } |
7711 OS.SelectObject (hDC, oldFont); | |
7712 OS.ReleaseDC (handle, hDC); | |
7713 if (result !is null) return result; | |
7714 } | |
7715 break; | |
7716 } | |
7717 } | |
7718 break; | |
7719 } | |
214
a8fed3e56433
Fix link error and added missing switch defaults
Frank Benoit <benoit@tionex.de>
parents:
213
diff
changeset
|
7720 default: |
213 | 7721 } |
7722 return null; | |
7723 } | |
7724 | |
7725 } |