annotate dwt/widgets/MenuItem.d @ 240:c84e3d3feb3f

allow null strings and arrays as arguments
author Frank Benoit <benoit@tionex.de>
date Sat, 21 Jun 2008 02:24:49 +0200
parents 36f5cb12e1a2
children fd9c62a2998e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
92c102dd64a3 Added all 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.MenuItem;
92c102dd64a3 Added all 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.ArmListener;
92c102dd64a3 Added all 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.HelpListener;
92c102dd64a3 Added all 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.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
20 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
21 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
22 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
23 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
24 import dwt.graphics.Rectangle;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwt.internal.win32.OS;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
26
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
27 import dwt.widgets.Item;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
28 import dwt.widgets.Widget;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
29 import dwt.widgets.Menu;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
30 import dwt.widgets.Decorations;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
31 import dwt.widgets.TypedListener;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
32 import dwt.widgets.Display;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
33 import dwt.widgets.Event;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
34
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
35 import dwt.dwthelper.utils;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * Instances of this class represent 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
39 * that issues notification when pressed and released.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * <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
41 * <dt><b>Styles:</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
42 * <dd>CHECK, CASCADE, PUSH, RADIO, SEPARATOR</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
43 * <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
44 * <dd>Arm, Help, Selection</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
45 * </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
46 * <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
47 * Note: Only one of the styles CHECK, CASCADE, PUSH, RADIO and SEPARATOR
92c102dd64a3 Added all 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 * 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
49 * </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
50 * 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
51 * </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
52 */
92c102dd64a3 Added all 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
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
54 public class MenuItem : 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
55 Menu parent, menu;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
56 HBITMAP hBitmap;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
57 int id, accelerator;
31
92c102dd64a3 Added all 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 /*
92c102dd64a3 Added all 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 * Feature in Windows. On Windows 98, it is 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
60 * to add 4 pixels to the width of the image or the 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
61 * and text are too close. On other Windows platforms,
92c102dd64a3 Added all 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 * this causes the text of the longest item to touch 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
63 * accelerator text. The fix is to use smaller margins
92c102dd64a3 Added all 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 * everywhere but on Windows 98.
92c102dd64a3 Added all 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 */
80
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
66 private static int MARGIN_WIDTH_;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
67 public static int MARGIN_WIDTH(){
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
68 assert( static_this_completed );
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
69 return MARGIN_WIDTH_;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
70 }
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
71 private static int MARGIN_HEIGHT_;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
72 public static int MARGIN_HEIGHT(){
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
73 assert( static_this_completed );
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
74 return MARGIN_HEIGHT_;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
75 }
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
76
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
77 private static bool static_this_completed = false;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
78 private static void static_this() {
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
79 if( static_this_completed ){
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
80 return;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
81 }
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
82 synchronized {
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
83 if( static_this_completed ){
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
84 return;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
85 }
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
86 MARGIN_WIDTH_ = OS.IsWin95 ? 2 : 1;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
87 MARGIN_HEIGHT_ = OS.IsWin95 ? 2 : 1;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
88 static_this_completed = true;
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
89 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
90 }
31
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * 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
94 * (which must be a <code>Menu</code>) and a style 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
95 * describing its behavior and appearance. The item is 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
96 * to the end of the items maintained by 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
97 * <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
98 * 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
99 * 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
100 * 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
101 * (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
102 * 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
103 * 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
104 * 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
105 * </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
106 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * @param parent a menu 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
108 * @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
109 *
92c102dd64a3 Added all 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 * @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
111 * <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
112 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * @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
114 * <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
115 * <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
116 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @see DWT#CHECK
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * @see DWT#CASCADE
92c102dd64a3 Added all 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 * @see DWT#PUSH
92c102dd64a3 Added all 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 * @see DWT#RADIO
92c102dd64a3 Added all 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 * @see DWT#SEPARATOR
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @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
124 * @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
125 */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
126 public this (Menu parent, int style) {
80
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
127 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
128 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
129 this.parent = 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
130 parent.createItem (this, parent.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
131 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * 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
135 * (which must be a <code>Menu</code>), a style 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
136 * describing its behavior and appearance, and the index
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * at which to place it in the items maintained by 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
138 * <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
139 * 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
140 * 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
141 * 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
142 * (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
143 * 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
144 * 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
145 * 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
146 * </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
147 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * @param parent a menu 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
149 * @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
150 * @param index the zero-relative index to store the receiver in 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
151 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * @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
153 * <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
154 * <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the parent (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
155 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @exception DWTException <ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 * @see DWT#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
162 * @see DWT#CASCADE
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 * @see DWT#PUSH
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * @see DWT#RADIO
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 * @see DWT#SEPARATOR
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * @see 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
167 * @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
168 */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
169 public this (Menu parent, int style, int index) {
80
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
170 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
171 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
172 this.parent = 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
173 parent.createItem (this, 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
174 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
176 this (Menu parent, Menu menu, int style, int index) {
80
1801ddeb8f32 removed static ctors
Frank Benoit <benoit@tionex.de>
parents: 77
diff changeset
177 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
178 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
179 this.parent = 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
180 this.menu = menu;
92c102dd64a3 Added all 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 if (menu !is null) menu.cascade = 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
182 display.addMenuItem (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
183 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * 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
187 * be notified when the arm events are generated for the control, 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
188 * it one of the messages defined in the <code>ArmListener</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
189 * 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
190 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 * @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
192 *
92c102dd64a3 Added all 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 * @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
194 * <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
195 * </ul>
92c102dd64a3 Added all 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 * @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
197 * <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
198 * <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
199 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 * @see ArmListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 * @see #removeArmListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 */
92c102dd64a3 Added all 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 public void addArmListener (ArmListener 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
205 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
206 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
207 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
208 addListener (DWT.Arm, 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
209 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * 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
213 * be notified when the help events are generated for the control, 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
214 * it one of the messages defined in the <code>HelpListener</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
215 * 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
216 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 * @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
218 *
92c102dd64a3 Added all 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 * @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
220 * <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
221 * </ul>
92c102dd64a3 Added all 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 * @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
223 * <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
224 * <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
225 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @see HelpListener
92c102dd64a3 Added all 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 * @see #removeHelpListener
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public void addHelpListener (HelpListener 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
231 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
232 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
233 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
234 addListener (DWT.Help, 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
235 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 * 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
239 * be notified when the menu item is selected by the user, 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
240 * 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
241 * 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
242 * <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
243 * When <code>widgetSelected</code> is called, the stateMask 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
244 * <code>widgetDefaultSelected</code> is not 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
245 * </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
246 *
92c102dd64a3 Added all 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 * @param listener the listener which should be notified when the menu item is 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
248 *
92c102dd64a3 Added all 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 * @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
250 * <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
251 * </ul>
92c102dd64a3 Added all 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 * @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
253 * <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
254 * <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
255 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @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
258 * @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
259 * @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
260 */
92c102dd64a3 Added all 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 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
262 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
263 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
264 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
265 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
266 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
267 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
269 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
270 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
271 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272
92c102dd64a3 Added all 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 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
274 return checkBits (style, DWT.PUSH, DWT.CHECK, DWT.RADIO, DWT.SEPARATOR, DWT.CASCADE, 0);
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
277 override void destroyWidget () {
31
92c102dd64a3 Added all 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 parent.destroyItem (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
279 releaseHandle ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 }
92c102dd64a3 Added all 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
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
282 bool fillAccel (ACCEL* accel) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
283 accel.cmd = accel.key = accel.fVirt = 0;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
284 if (accelerator is 0 || !getEnabled ()) return false;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
285 if ((accelerator & DWT.COMMAND) !is 0) 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
286 int fVirt = OS.FVIRTKEY;
92c102dd64a3 Added all 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 int key = accelerator & DWT.KEY_MASK;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
288 auto vKey = Display.untranslateKey (key);
31
92c102dd64a3 Added all 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 if (vKey !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
290 key = vKey;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 } 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
292 switch (key) {
92c102dd64a3 Added all 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 /*
92c102dd64a3 Added all 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 * Bug in Windows. For some reason, VkKeyScan
92c102dd64a3 Added all 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 * fails to map ESC to VK_ESCAPE and DEL 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
296 * VK_DELETE. The fix is to map these keys
92c102dd64a3 Added all 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 * as a special case.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 case 27: key = OS.VK_ESCAPE; 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
300 case 127: key = OS.VK_DELETE; 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
301 default: {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
302 key = Display.wcsToMbcs (cast(char) key);
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
303 if (key is 0) return false;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
304 static if (OS.IsWinCE) {
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
305 key = cast(int) OS.CharUpper (cast(TCHAR*) key);
31
92c102dd64a3 Added all 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 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
307 vKey = OS.VkKeyScan (cast(TCHAR) key) & 0xFF;
31
92c102dd64a3 Added all 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 if (vKey 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
309 fVirt = 0;
92c102dd64a3 Added all 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 } 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
311 key = vKey;
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
317 accel.key = cast(short) key;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
318 accel.cmd = cast(short) id;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
319 accel.fVirt = cast(byte) fVirt;
31
92c102dd64a3 Added all 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 if ((accelerator & DWT.ALT) !is 0) accel.fVirt |= OS.FALT;
92c102dd64a3 Added all 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 if ((accelerator & DWT.SHIFT) !is 0) accel.fVirt |= OS.FSHIFT;
92c102dd64a3 Added all 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 if ((accelerator & DWT.CONTROL) !is 0) accel.fVirt |= OS.FCONTROL;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
323 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
324 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 void fixMenus (Decorations newParent) {
92c102dd64a3 Added all 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 if (menu !is null) menu.fixMenus (newParent);
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Returns the widget accelerator. An accelerator is the bit-wise
92c102dd64a3 Added all 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 * OR of zero or more modifier masks and a key. Examples:
92c102dd64a3 Added all 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 * <code>DWT.CONTROL | DWT.SHIFT | 'T', DWT.ALT | DWT.F2</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
334 * The default value is zero, indicating that the menu item 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
335 * not have an accelerator.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @return the accelerator or 0
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * </ul>
92c102dd64a3 Added all 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 * @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
341 * <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
342 * <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
343 * </ul>
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public int getAccelerator () {
92c102dd64a3 Added all 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 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
347 return accelerator;
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Returns a rectangle describing the receiver's size and location
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 * relative to its parent (or its display if its parent 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
353 *
92c102dd64a3 Added all 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 * @return the receiver's bounding 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
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 * @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
357 * <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
358 * <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
359 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @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
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 /*public*/ Rectangle 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
364 checkWidget ();
117
25f88bf5a6df Only one file was damaged
Frank Benoit <benoit@tionex.de>
parents: 115
diff changeset
365 static if (OS.IsWinCE) return new Rectangle (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
366 int index = parent.indexOf (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
367 if (index is -1) return new Rectangle (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
368 if ((parent.style & DWT.BAR) !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
369 Decorations shell = parent.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
370 if (shell.menuBar !is 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
371 return new Rectangle (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
372 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
373 auto hwndShell = shell.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
374 MENUBARINFO info1;
31
92c102dd64a3 Added all 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 info1.cbSize = MENUBARINFO.sizeof;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
376 if (!OS.GetMenuBarInfo (hwndShell, OS.OBJID_MENU, 1, &info1)) {
31
92c102dd64a3 Added all 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 return new Rectangle (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
378 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
379 MENUBARINFO info2;
31
92c102dd64a3 Added all 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 info2.cbSize = MENUBARINFO.sizeof;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
381 if (!OS.GetMenuBarInfo (hwndShell, OS.OBJID_MENU, index + 1, &info2)) {
31
92c102dd64a3 Added all 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 return new Rectangle (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
383 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
384 int x = info2.rcBar.left - info1.rcBar.left;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
385 int y = info2.rcBar.top - info1.rcBar.top;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
386 int width = info2.rcBar.right - info2.rcBar.left;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
387 int height = info2.rcBar.bottom - info2.rcBar.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
388 return new Rectangle (x, y, 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
389 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
390 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
391 RECT rect1;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
392 if (!OS.GetMenuItemRect (null, hMenu, 0, &rect1)) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 return new Rectangle (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
394 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
395 RECT rect2;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
396 if (!OS.GetMenuItemRect (null, hMenu, index, &rect2)) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 return new Rectangle (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
398 }
92c102dd64a3 Added all 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 int x = rect2.left - rect1.left + 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
400 int y = rect2.top - rect1.top + 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
401 int width = rect2.right - rect2.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
402 int height = rect2.bottom - rect2.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
403 return new Rectangle (x, y, 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
404 }
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Returns <code>true</code> if the receiver is enabled, 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
409 * <code>false</code> otherwise. A disabled menu item is typically
92c102dd64a3 Added all 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 * not selectable from the user interface and draws with 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
411 * inactive or "grayed" look.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 * @return the receiver's enabled 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
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 * @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
416 * <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
417 * <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
418 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @see #isEnabled
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public bool getEnabled () {
92c102dd64a3 Added all 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 checkWidget ();
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
424 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
425 auto hwndCB = parent.hwndCB;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
426 TBBUTTONINFO 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
427 info.cbSize = TBBUTTONINFO.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
428 info.dwMask = OS.TBIF_STATE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
429 OS.SendMessage (hwndCB, OS.TB_GETBUTTONINFO, id, &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
430 return (info.fsState & OS.TBSTATE_ENABLED) !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
431 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
432 /*
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
433 * Feature in Windows. For some reason, when the menu item
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
434 * is a separator, GetMenuItemInfo() always indicates that
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
435 * the item is not enabled. The fix is to track the enabled
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
436 * state for separators.
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
437 */
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
438 if ((style & DWT.SEPARATOR) !is 0) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
439 return (state & DISABLED) is 0;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
440 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
441 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
442 MENUITEMINFO 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
443 info.cbSize = MENUITEMINFO.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
444 info.fMask = OS.MIIM_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
445 bool success;
117
25f88bf5a6df Only one file was damaged
Frank Benoit <benoit@tionex.de>
parents: 115
diff changeset
446 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
447 int index = parent.indexOf (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
448 if (index is -1) error (DWT.ERROR_CANNOT_GET_ENABLED);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
449 success = cast(bool) OS.GetMenuItemInfo (hMenu, index, true, &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
450 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
451 success = cast(bool) OS.GetMenuItemInfo (hMenu, id, false, &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
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 if (!success) error (DWT.ERROR_CANNOT_GET_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
454 return (info.fState & (OS.MFS_DISABLED | OS.MFS_GRAYED)) 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
455 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Returns the receiver's cascade menu if it has one or 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
459 * if it does not. Only <code>CASCADE</code> menu items can 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
460 * a pull down menu. The sequence of key strokes, button presses
92c102dd64a3 Added all 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 * and/or button releases that are used to request a pull 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
462 * menu is platform specific.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @return the receiver's menu
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 * @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
467 * <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
468 * <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
469 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 */
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
471 override public Menu getMenu () {
31
92c102dd64a3 Added all 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 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
473 return menu;
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 117
diff changeset
476 override String getNameText () {
31
92c102dd64a3 Added all 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 if ((style & DWT.SEPARATOR) !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
478 return super.getNameText ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 * Returns the receiver's parent, which must be a <code>Menu</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
483 *
92c102dd64a3 Added all 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 * @return the receiver's 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
485 *
92c102dd64a3 Added all 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 * @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
487 * <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
488 * <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
489 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 public Menu getParent () {
92c102dd64a3 Added all 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 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
493 return 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
494 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
496 /**
92c102dd64a3 Added all 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 * Returns <code>true</code> if the receiver 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
498 * and false 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
499 * <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
500 * When the receiver is of type <code>CHECK</code> or <code>RADIO</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
501 * it is selected when it is checked.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @return the selection 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
504 *
92c102dd64a3 Added all 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 * @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
506 * <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
507 * <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
508 * </ul>
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public bool 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
511 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
512 if ((style & (DWT.CHECK | DWT.RADIO)) is 0) return false;
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
513 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) return false;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
514 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
515 MENUITEMINFO 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
516 info.cbSize = MENUITEMINFO.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
517 info.fMask = OS.MIIM_STATE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
518 bool success = cast(bool) OS.GetMenuItemInfo (hMenu, id, false, &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
519 if (!success) error (DWT.ERROR_CANNOT_GET_SELECTION);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
520 return (info.fState & OS.MFS_CHECKED) !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
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 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
524 * Returns <code>true</code> if the receiver is enabled and 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
525 * of the receiver's ancestors are enabled, and <code>false</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
526 * otherwise. A disabled menu item is typically not selectable 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
527 * user interface and draws with an inactive or "grayed" look.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @return the receiver's enabled 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
530 *
92c102dd64a3 Added all 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 * @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
532 * <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
533 * <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
534 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
535 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
536 * @see #getEnabled
92c102dd64a3 Added all 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 public bool isEnabled () {
92c102dd64a3 Added all 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 return getEnabled () && parent.isEnabled ();
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
542 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
543 if (menu !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
544 menu.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
545 menu = 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
546 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
547 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
548 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
549
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
550 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
551 super.releaseHandle ();
92c102dd64a3 Added all 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 parent = 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
553 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
554 }
92c102dd64a3 Added all 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
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
556 override void releaseParent () {
31
92c102dd64a3 Added all 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 super.releaseParent ();
92c102dd64a3 Added all 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 if (menu !is null) menu.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
559 menu = 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
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
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
562 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
563 super.releaseWidget ();
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
564 if (hBitmap !is null) OS.DeleteObject (hBitmap);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
565 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
566 if (accelerator !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
567 parent.destroyAccelerators ();
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 accelerator = 0;
92c102dd64a3 Added all 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 display.removeMenuItem (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
571 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
572
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
573 /**
92c102dd64a3 Added all 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 * 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
575 * be notified when the arm events are generated for the 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
576 *
92c102dd64a3 Added all 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 * @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
578 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
579 * @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
580 * <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
581 * </ul>
92c102dd64a3 Added all 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 * @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
583 * <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
584 * <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
585 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @see ArmListener
92c102dd64a3 Added all 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 * @see #addArmListener
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public void removeArmListener (ArmListener 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
591 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
592 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
593 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
594 eventTable.unhook (DWT.Arm, 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
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 /**
92c102dd64a3 Added all 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 * 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
598 * be notified when the help events are generated for the 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
599 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
600 * @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
601 *
92c102dd64a3 Added all 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 * @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
603 * <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
604 * </ul>
92c102dd64a3 Added all 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 * @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
606 * <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
607 * <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
608 * </ul>
92c102dd64a3 Added all 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 * @see HelpListener
92c102dd64a3 Added all 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 * @see #addHelpListener
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
612 */
92c102dd64a3 Added all 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 public void removeHelpListener (HelpListener 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
614 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
615 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
616 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
617 eventTable.unhook (DWT.Help, 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
618 }
92c102dd64a3 Added all 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 * 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
621 * be notified when the control is 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
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 * @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
624 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
625 * @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
626 * <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
627 * </ul>
92c102dd64a3 Added all 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 * @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
629 * <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
630 * <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
631 * </ul>
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @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
634 * @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
635 */
92c102dd64a3 Added all 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 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
637 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
638 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
639 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
640 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
641 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
642 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 void selectRadio () {
92c102dd64a3 Added all 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 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
646 MenuItem [] items = parent.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
647 while (index < items.length && items [index] !is this) 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
648 int i = 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
649 while (i >= 0 && items [i].setRadioSelection (false)) --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
650 int j = 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
651 while (j < items.length && items [j].setRadioSelection (false)) j++;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
652 setSelection (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
653 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
654
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Sets the widget accelerator. An accelerator is the bit-wise
92c102dd64a3 Added all 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 * OR of zero or more modifier masks and a key. Examples:
92c102dd64a3 Added all 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 * <code>DWT.MOD1 | DWT.MOD2 | 'T', DWT.MOD3 | DWT.F2</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
659 * <code>DWT.CONTROL | DWT.SHIFT | 'T', DWT.ALT | DWT.F2</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
660 * The default value is zero, indicating that the menu item 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
661 * not have an accelerator.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @param accelerator an integer that is the bit-wise OR of masks and a key
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
664 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
665 * </ul>
92c102dd64a3 Added all 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 * @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
667 * <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
668 * <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
669 * </ul>
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public void setAccelerator (int accelerator) {
92c102dd64a3 Added all 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 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
673 if (this.accelerator is accelerator) 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
674 this.accelerator = accelerator;
92c102dd64a3 Added all 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 parent.destroyAccelerators ();
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
678 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
679 * Enables the receiver 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
680 * and disables it otherwise. A disabled menu item is typically
92c102dd64a3 Added all 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 * not selectable from the user interface and draws with 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
682 * inactive or "grayed" look.
92c102dd64a3 Added all 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 * @param enabled the new enabled 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
685 *
92c102dd64a3 Added all 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 * @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
687 * <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
688 * <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
689 * </ul>
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public void setEnabled (bool 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
692 checkWidget ();
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
693 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
694 auto hwndCB = parent.hwndCB;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
695 TBBUTTONINFO 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
696 info.cbSize = TBBUTTONINFO.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
697 info.dwMask = OS.TBIF_STATE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
698 OS.SendMessage (hwndCB, OS.TB_GETBUTTONINFO, id, &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
699 info.fsState &= ~OS.TBSTATE_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
700 if (enabled) info.fsState |= OS.TBSTATE_ENABLED;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
701 OS.SendMessage (hwndCB, OS.TB_SETBUTTONINFO, id, &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
702 } else {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
703 /*
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
704 * Feature in Windows. For some reason, when the menu item
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
705 * is a separator, GetMenuItemInfo() always indicates that
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
706 * the item is not enabled. The fix is to track the enabled
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
707 * state for separators.
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
708 */
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
709 if ((style & DWT.SEPARATOR) !is 0) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
710 if (enabled) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
711 state &= ~DISABLED;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
712 } else {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
713 state |= DISABLED;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
714 }
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
715 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
716 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
717 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
718 int index = parent.indexOf (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
719 if (index is -1) return;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
720 int uEnable = OS.MF_BYPOSITION | (enabled ? OS.MF_ENABLED : OS.MF_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
721 OS.EnableMenuItem (hMenu, index, uEnable);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
722 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
723 MENUITEMINFO 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
724 info.cbSize = MENUITEMINFO.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
725 info.fMask = OS.MIIM_STATE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
726 bool success = cast(bool) OS.GetMenuItemInfo (hMenu, id, false, &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
727 if (!success) error (DWT.ERROR_CANNOT_SET_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
728 int bits = OS.MFS_DISABLED | OS.MFS_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
729 if (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
730 if ((info.fState & bits) 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
731 info.fState &= ~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
732 } 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
733 if ((info.fState & bits) is bits) 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
734 info.fState |= 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
735 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
736 success = cast(bool) OS.SetMenuItemInfo (hMenu, id, false, &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
737 if (!success) {
92c102dd64a3 Added all 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 /*
92c102dd64a3 Added all 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 * Bug in Windows. For some reason SetMenuItemInfo(),
92c102dd64a3 Added all 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 * returns a fail code when setting the enabled 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
741 * selected state of a default item, but sets 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
742 * state anyway. The fix is to ignore the error.
92c102dd64a3 Added all 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 * 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
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 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
747 success = id is OS.GetMenuDefaultItem (hMenu, OS.MF_BYCOMMAND, OS.GMDI_USEDISABLED);
92c102dd64a3 Added all 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 (!success) error (DWT.ERROR_CANNOT_SET_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
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 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
752 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
753 parent.destroyAccelerators ();
92c102dd64a3 Added all 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 parent.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
755 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
756
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Sets the image the receiver will display to the 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
759 * <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
760 * Note: This operation is a hint and is not supported 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
761 * platforms that do not have this concept (for example, Windows NT).
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
762 * </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
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 * @param image the image to 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
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 * @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
767 * <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
768 * <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
769 * </ul>
92c102dd64a3 Added all 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 */
54
0f25be5cbe6f Added aliases and overrides from generated file, remaining widgets. Thanks torhu for doing this job.
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
771 override public void setImage (Image image) {
31
92c102dd64a3 Added all 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 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
773 if ((style & DWT.SEPARATOR) !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
774 super.setImage (image);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
775 static if (OS.IsWinCE) {
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
776 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
777 int /*long*/ hwndCB = parent.hwndCB;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
778 TBBUTTONINFO 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
779 info.cbSize = TBBUTTONINFO.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
780 info.dwMask = OS.TBIF_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
781 info.iImage = parent.imageIndex (image);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
782 OS.SendMessage (hwndCB, OS.TB_SETBUTTONINFO, id, &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
783 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
784 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
785 }
92c102dd64a3 Added all 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 if (OS.WIN32_VERSION < OS.VERSION (4, 10)) return;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
787 MENUITEMINFO 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
788 info.cbSize = MENUITEMINFO.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
789 info.fMask = OS.MIIM_BITMAP;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
790 if (parent.foreground !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
791 info.hbmpItem = OS.HBMMENU_CALLBACK;
92c102dd64a3 Added all 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 } 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
793 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
794 if (hBitmap !is null) OS.DeleteObject (hBitmap);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
795 info.hbmpItem = hBitmap = image !is null ? Display.create32bitDIB (image) : null;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
796 } 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
797 info.hbmpItem = OS.HBMMENU_CALLBACK;
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
800 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
801 OS.SetMenuItemInfo (hMenu, id, false, &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
802 parent.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
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 /**
92c102dd64a3 Added all 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 * Sets the receiver's pull down menu to the 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
807 * Only <code>CASCADE</code> menu items can have 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
808 * pull down menu. The sequence of key strokes, button presses
92c102dd64a3 Added all 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 * and/or button releases that are used to request a pull 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
810 * menu is platform specific.
92c102dd64a3 Added all 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 * <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
812 * Note: Disposing of a menu item that has a pull down menu
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
813 * will dispose of the menu. To avoid this behavior, set 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
814 * menu to null before the menu item is disposed.
92c102dd64a3 Added all 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 * </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
816 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
817 * @param menu the new pull down menu
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * @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
820 * <li>ERROR_MENU_NOT_DROP_DOWN - if the menu is not a drop down menu</li>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
821 * <li>ERROR_MENUITEM_NOT_CASCADE - if the menu item is not a <code>CASCADE</code></li>
92c102dd64a3 Added all 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 * <li>ERROR_INVALID_ARGUMENT - if the menu 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
823 * <li>ERROR_INVALID_PARENT - if the menu is not in the same widget tree</li>
92c102dd64a3 Added all 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 * </ul>
92c102dd64a3 Added all 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 * @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
826 * <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
827 * <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
828 * </ul>
92c102dd64a3 Added all 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 */
92c102dd64a3 Added all 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 public void setMenu (Menu menu) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
831 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
832
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
833 /* Check to make sure the new menu 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
834 if ((style & DWT.CASCADE) is 0) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
835 error (DWT.ERROR_MENUITEM_NOT_CASCADE);
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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 if (menu !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
838 if (menu.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
839 if ((menu.style & DWT.DROP_DOWN) is 0) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
840 error (DWT.ERROR_MENU_NOT_DROP_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
841 }
92c102dd64a3 Added all 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 (menu.parent !is parent.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
843 error (DWT.ERROR_INVALID_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
844 }
92c102dd64a3 Added all 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 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
846 setMenu (menu, false);
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
847 }
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
848
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
849 void setMenu (Menu menu, bool 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
850
92c102dd64a3 Added all 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 /* Assign the new menu */
92c102dd64a3 Added all 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 Menu oldMenu = this.menu;
92c102dd64a3 Added all 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 (oldMenu is menu) 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
854 if (oldMenu !is null) oldMenu.cascade = 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
855 this.menu = menu;
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 /* Assign the new menu in the OS */
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
858 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) {
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
859 if (OS.IsPPC) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
860 HWND hwndCB = parent.hwndCB;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
861 HMENU hMenu = menu is null ? null : menu.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
862 OS.SendMessage (hwndCB, OS.SHCMBM_SETSUBMENU, id, hMenu);
92c102dd64a3 Added all 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 }
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
864 if (OS.IsSP) error (DWT.ERROR_CANNOT_SET_MENU);
31
92c102dd64a3 Added all 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 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
866 HMENU hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
867 MENUITEMINFO 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
868 info.cbSize = MENUITEMINFO.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
869 info.fMask = OS.MIIM_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
870 int index = 0;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
871 while (OS.GetMenuItemInfo (hMenu, index, true, &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
872 if (info.dwItemData is id) 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
873 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
874 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
875 if (info.dwItemData !is id) return;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
876 int cch = 128;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
877 auto hHeap = OS.GetProcessHeap ();
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
878 int byteCount = cch * TCHAR.sizeof;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
879 auto pszText = cast(TCHAR*)OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
880 info.fMask = OS.MIIM_STATE | OS.MIIM_ID | OS.MIIM_DATA;
31
92c102dd64a3 Added all 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 /*
92c102dd64a3 Added all 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 * Bug in Windows. When GetMenuItemInfo() is used to get 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
883 * for an item that has a bitmap set using MIIM_BITMAP, the text 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
884 * not returned. This means that when SetMenuItemInfo() 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
885 * set the submenu and the current menu state, the text is lost.
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
886 * The fix is use MIIM_BITMAP and MIIM_STRING.
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
887 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
888 if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (4, 10)) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
889 info.fMask |= OS.MIIM_BITMAP | OS.MIIM_STRING;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
890 } else {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
891 info.fMask |= OS.MIIM_TYPE;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
892 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
893 info.dwTypeData = 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
894 info.cch = cch;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
895 bool success = cast(bool) OS.GetMenuItemInfo (hMenu, index, true, &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
896 if (menu !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
897 menu.cascade = 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
898 info.fMask |= OS.MIIM_SUBMENU;
92c102dd64a3 Added all 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 info.hSubMenu = menu.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
900 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
901 if (OS.IsWinCE) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
902 OS.RemoveMenu (hMenu, index, OS.MF_BYPOSITION);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
903 /*
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
904 * On WinCE, InsertMenuItem() is not available. 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
905 * use SetMenuItemInfo() but this call does not set the menu 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
906 * state and submenu. The fix is to use InsertMenu() to insert
92c102dd64a3 Added all 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 * the item, SetMenuItemInfo() to set the string and EnableMenuItem()
92c102dd64a3 Added all 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 * and CheckMenuItem() to set the 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
909 */
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
910 int /*long*/ uIDNewItem = 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
911 int uFlags = OS.MF_BYPOSITION;
92c102dd64a3 Added all 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 if (menu !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
913 uFlags |= OS.MF_POPUP;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
914 uIDNewItem = cast(int)menu.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
915 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
916 TCHAR[] lpNewItem = StrToTCHARs (0, " ", true);
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
917 success = OS.InsertMenu (hMenu, index, uFlags, uIDNewItem, lpNewItem.ptr) !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
918 if (success) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
919 info.fMask = OS.MIIM_DATA | OS.MIIM_TYPE;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
920 success = OS.SetMenuItemInfo (hMenu, index, true, &info) !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
921 if ((info.fState & (OS.MFS_DISABLED | OS.MFS_GRAYED)) !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
922 OS.EnableMenuItem (hMenu, index, OS.MF_BYPOSITION | OS.MF_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
923 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
924 if ((info.fState & OS.MFS_CHECKED) !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
925 OS.CheckMenuItem (hMenu, index, OS.MF_BYPOSITION | OS.MF_CHECKED);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
926 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
927 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
928 } else {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
929 if (dispose || oldMenu is null) {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
930 success = cast(bool) OS.SetMenuItemInfo (hMenu, index, true, &info);
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
931 } else {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
932 /*
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
933 * Feature in Windows. When SetMenuItemInfo () is used to
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
934 * set a submenu and the menu item already has a submenu,
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
935 * Windows destroys the previous menu. This is undocumented
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
936 * and unexpected but not necessarily wrong. The fix is to
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
937 * remove the item with RemoveMenu () which does not destroy
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
938 * the submenu and then insert the item with InsertMenuItem ().
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
939 */
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
940 OS.RemoveMenu (hMenu, index, OS.MF_BYPOSITION);
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
941 success = OS.InsertMenuItem (hMenu, index, true, &info) !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
942 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
943 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
944 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
945 if (!success) error (DWT.ERROR_CANNOT_SET_MENU);
92c102dd64a3 Added all 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 parent.destroyAccelerators ();
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 bool setRadioSelection (bool 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
951 if ((style & DWT.RADIO) is 0) 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
952 if (getSelection () !is 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
953 setSelection (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
954 postEvent (DWT.Selection);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
955 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
956 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
957 }
92c102dd64a3 Added all 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 /**
92c102dd64a3 Added all 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 * Sets the selection state 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
961 * <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
962 * When the receiver is of type <code>CHECK</code> or <code>RADIO</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
963 * it is selected when it is checked.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
964 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
965 * @param selected the new selection 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
966 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
967 * @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
968 * <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
969 * <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
970 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
971 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
972 public void setSelection (bool 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
973 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
974 if ((style & (DWT.CHECK | DWT.RADIO)) is 0) return;
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
975 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !is null) return;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
976 auto hMenu = parent.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
977 if (OS.IsWinCE) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
978 int index = parent.indexOf (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
979 if (index is -1) return;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
980 int uCheck = OS.MF_BYPOSITION | (selected ? OS.MF_CHECKED : OS.MF_UNCHECKED);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
981 OS.CheckMenuItem (hMenu, index, uCheck);
92c102dd64a3 Added all 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 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
983 MENUITEMINFO 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
984 info.cbSize = MENUITEMINFO.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
985 info.fMask = OS.MIIM_STATE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
986 bool success = cast(bool) OS.GetMenuItemInfo (hMenu, id, false, &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
987 if (!success) error (DWT.ERROR_CANNOT_SET_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
988 info.fState &= ~OS.MFS_CHECKED;
92c102dd64a3 Added all 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 (selected) info.fState |= OS.MFS_CHECKED;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
990 success = cast(bool) OS.SetMenuItemInfo (hMenu, id, false, &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
991 if (!success) {
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
992 /*
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
993 * Bug in Windows. For some reason SetMenuItemInfo(),
92c102dd64a3 Added all 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 * returns a fail code when setting the enabled 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
995 * selected state of a default item, but sets 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
996 * state anyway. The fix is to ignore the error.
92c102dd64a3 Added all 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 *
92c102dd64a3 Added all 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 * 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
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 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
1001 success = id is OS.GetMenuDefaultItem (hMenu, OS.MF_BYCOMMAND, OS.GMDI_USEDISABLED);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1002 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1003 if (!success) error (DWT.ERROR_CANNOT_SET_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
1004 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1005 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1006 parent.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
1007 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1008 /**
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1009 * Sets the receiver's text. The string may include
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1010 * the mnemonic character and accelerator 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
1011 * <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
1012 * Mnemonics are indicated by an '&amp;' that causes the next
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1013 * character to be the mnemonic. When the user presses 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
1014 * key sequence that matches the mnemonic, a 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
1015 * event occurs. On most platforms, the mnemonic appears
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1016 * underlined but may be emphasised in a platform specific
92c102dd64a3 Added all 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 * manner. The mnemonic indicator character '&amp;' 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
1018 * escaped by doubling it in the string, causing a single
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1019 * '&amp;' 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
1020 * </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
1021 * <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
1022 * Accelerator text is indicated by the '\t' character.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1023 * On platforms that support accelerator text, 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
1024 * that follows the '\t' character is displayed to 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
1025 * typically indicating the key stroke that will cause
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1026 * the item to become selected. On most platforms, 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
1027 * accelerator text appears right aligned in the menu.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1028 * Setting the accelerator text does not install 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
1029 * accelerator key sequence. The accelerator key sequence
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1030 * is installed using #setAccelerator.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1031 * </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
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 * @param string the new 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
1034 *
92c102dd64a3 Added all 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 * @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
1036 * <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
1037 * <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
1038 * </ul>
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1039 *
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1040 * @see #setAccelerator
92c102dd64a3 Added all 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 */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 117
diff changeset
1042 override public void setText (String string) {
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1043 checkWidget ();
240
c84e3d3feb3f allow null strings and arrays as arguments
Frank Benoit <benoit@tionex.de>
parents: 213
diff changeset
1044 // DWT extension: allow null string
c84e3d3feb3f allow null strings and arrays as arguments
Frank Benoit <benoit@tionex.de>
parents: 213
diff changeset
1045 //if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
31
92c102dd64a3 Added all 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 if ((style & DWT.SEPARATOR) !is 0) return;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1047 if (text==/*eq*/string ) 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
1048 super.setText (string);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1049 auto hHeap = OS.GetProcessHeap ();
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1050 TCHAR* 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
1051 bool success = false;
77
205350493476 Accessible linkable dummy.
Frank Benoit <benoit@tionex.de>
parents: 59
diff changeset
1052 if ((OS.IsPPC || OS.IsSP) && parent.hwndCB !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
1053 /*
92c102dd64a3 Added all 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 * Bug in WinCE PPC. Tool items on the menubar don't 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
1055 * correctly when the character '&' is used (even when it
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1056 * is a sequence '&&'). The fix is to remove all '&' 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
1057 * the 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
1058 */
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1059 if (string.indexOf ('&') !is -1) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1060 int length_ = string.length;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1061 char[] text = new char [length_];
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1062 string.getChars( 0, length_, text, 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
1063 int i = 0, j = 0;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1064 for (i=0; i<length_; 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
1065 if (text[i] !is '&') text [j++] = text [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
1066 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1067 if (j < i) string = text[ 0 .. j ].dup;
31
92c102dd64a3 Added all 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 /* Use the character encoding for the default locale */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1070 TCHAR[] buffer = StrToTCHARs (0, string, true);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1071 int byteCount = buffer.length * TCHAR.sizeof;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1072 pszText = cast(TCHAR*) OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1073 OS.MoveMemory (pszText, buffer.ptr, byteCount);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1074 auto hwndCB = parent.hwndCB;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1075 TBBUTTONINFO info2;
31
92c102dd64a3 Added all 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 info2.cbSize = TBBUTTONINFO.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
1077 info2.dwMask = OS.TBIF_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
1078 info2.pszText = pszText;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1079 success = OS.SendMessage (hwndCB, OS.TB_SETBUTTONINFO, id, &info2) !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
1080 } else {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1081 MENUITEMINFO 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
1082 info.cbSize = MENUITEMINFO.sizeof;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1083 auto hMenu = parent.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
1084
92c102dd64a3 Added all 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 /* Use the character encoding for the default locale */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1086 TCHAR[] buffer = StrToTCHARs (0, string, true);
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1087 int byteCount = buffer.length * TCHAR.sizeof;
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1088 pszText = cast(TCHAR*)OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1089 OS.MoveMemory (pszText, buffer.ptr, byteCount);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1090 /*
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1091 * Bug in Windows 2000. For some reason, when MIIM_TYPE is set
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1092 * on a menu item that also has MIIM_BITMAP, the MIIM_TYPE clears
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1093 * the MIIM_BITMAP style. The fix is to use MIIM_STRING.
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1094 */
92c102dd64a3 Added all 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 (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (4, 10)) {
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1096 info.fMask = OS.MIIM_STRING;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1097 } else {
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1098 info.fMask = OS.MIIM_TYPE;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1099 info.fType = 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
1100 }
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1101 info.dwTypeData = pszText;
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1102 success = cast(bool) OS.SetMenuItemInfo (hMenu, id, false, &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
1103 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1104 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
1105 if (!success) error (DWT.ERROR_CANNOT_SET_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
1106 parent.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
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 int widgetStyle () {
92c102dd64a3 Added all 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 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
1111 Decorations shell = parent.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
1112 if ((shell.style & DWT.MIRRORED) !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
1113 if ((parent.style & DWT.LEFT_TO_RIGHT) !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
1114 bits |= OS.MFT_RIGHTJUSTIFY | OS.MFT_RIGHTORDER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1115 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1116 } 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
1117 if ((parent.style & DWT.RIGHT_TO_LEFT) !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
1118 bits |= OS.MFT_RIGHTJUSTIFY | OS.MFT_RIGHTORDER;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1119 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1120 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1121 if ((style & DWT.SEPARATOR) !is 0) return bits | OS.MFT_SEPARATOR;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1122 if ((style & DWT.RADIO) !is 0) return bits | OS.MFT_RADIOCHECK;
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1123 return bits | OS.MFT_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
1124 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1125
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1126 LRESULT wmCommandChild (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
1127 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
1128 setSelection (!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
1129 } 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
1130 if ((style & DWT.RADIO) !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
1131 if ((parent.getStyle () & DWT.NO_RADIO_GROUP) !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
1132 setSelection (!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
1133 } 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
1134 selectRadio ();
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1135 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1136 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1137 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1138 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
1139 setInputState (event, DWT.Selection);
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1140 postEvent (DWT.Selection, event);
108
6f75fdfa1bcd Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents: 80
diff changeset
1141 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
1142 }
92c102dd64a3 Added all 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
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1144 LRESULT wmDrawChild (int /*long*/ wParam, int /*long*/ lParam) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1145 DRAWITEMSTRUCT* struct_ = cast(DRAWITEMSTRUCT*)lParam;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1146 //OS.MoveMemory (struct_, lParam, DRAWITEMSTRUCT.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
1147 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
1148 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
1149 data.device = display;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1150 GC gc = GC.win32_new (struct_.hDC, data);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1151 /*
92c102dd64a3 Added all 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 * Bug in Windows. When a bitmap is included 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
1153 * menu bar, the HDC seems to already include the 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
1154 * coordinate. The fix is to ignore this value 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
1155 * the item is in a menu 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
1156 */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1157 int x = (parent.style & DWT.BAR) !is 0 ? MARGIN_WIDTH * 2 : struct_.rcItem.left;
31
92c102dd64a3 Added all 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 Image image = getEnabled () ? this.image : new Image (display, this.image, DWT.IMAGE_DISABLE);
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1159 gc.drawImage (image, x, struct_.rcItem.top + MARGIN_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
1160 if (this.image !is image) image.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
1161 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
1162 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1163 if (parent.foreground !is -1) OS.SetTextColor (struct_.hDC, parent.foreground);
108
6f75fdfa1bcd Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents: 80
diff changeset
1164 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
1165 }
92c102dd64a3 Added all 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
213
36f5cb12e1a2 Update to SWT 3.4M7
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
1167 LRESULT wmMeasureChild (int /*long*/ wParam, int /*long*/ lParam) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1168 MEASUREITEMSTRUCT* struct_ = cast(MEASUREITEMSTRUCT*)lParam;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1169 //OS.MoveMemory (struct_, lParam, MEASUREITEMSTRUCT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1170 int width = 0, height = 0;
92c102dd64a3 Added all 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 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
1172 Rectangle rect = 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
1173 width = rect.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
1174 height = rect.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
1175 } 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
1176 /*
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1177 * Bug in Windows. If a menu contains items that 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
1178 * images and can be checked, Windows does not include
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1179 * the width of the image and the width of the check 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
1180 * computing the width of the menu. When the longest 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
1181 * does not have an image, the label and the accelerator
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1182 * text can overlap. The fix is to use SetMenuItemInfo()
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1183 * to indicate that all items have a bitmap and then include
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1184 * the width of the widest bitmap in WM_MEASURECHILD.
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1185 */
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1186 MENUINFO lpcmi;
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1187 lpcmi.cbSize = MENUINFO.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
1188 lpcmi.fMask = OS.MIM_STYLE;
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1189 auto hMenu = parent.handle;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1190 OS.GetMenuInfo (hMenu, &lpcmi);
31
92c102dd64a3 Added all 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 if ((lpcmi.dwStyle & OS.MNS_CHECKORBMP) 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
1192 MenuItem [] items = parent.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
1193 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
1194 MenuItem 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
1195 if (item.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
1196 Rectangle rect = item.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
1197 width = Math.max (width, rect.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
1198 }
92c102dd64a3 Added all 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 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1200 }
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1201 }
92c102dd64a3 Added all 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 if (width !is 0 || height !is 0) {
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1203 struct_.itemWidth = width + MARGIN_WIDTH * 2;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1204 struct_.itemHeight = height + MARGIN_HEIGHT * 2;
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1205 //OS.MoveMemory (lParam, struct_, MEASUREITEMSTRUCT.sizeof);
31
92c102dd64a3 Added all widgets modules as dummy. Most modules of accessible are equal to the linux version, except Accessible.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1206 }
108
6f75fdfa1bcd Change LRESULT to class, like done in the old DWT.
Frank Benoit <benoit@tionex.de>
parents: 80
diff changeset
1207 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
1208 }
92c102dd64a3 Added all 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
92c102dd64a3 Added all 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 }
59
dc7db4338dbe MenuItem
Frank Benoit <benoit@tionex.de>
parents: 56
diff changeset
1211