Mercurial > projects > dwt-mac
annotate dwt/widgets/Display.d @ 61:c74ba20de292
Fix: The application responds to events now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Tue, 23 Dec 2008 00:35:24 +0100 |
parents | 62202ce0039f |
children | 10eaa644646f |
rev | line source |
---|---|
45 | 1 /******************************************************************************* |
2 * Copyright (c) 2000, 2008 IBM Corporation and others. | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3 * All rights reserved. This program and the accompanying materials |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4 * are made available under the terms of the Eclipse Public License v1.0 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
5 * which accompanies this distribution, and is available at |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
6 * http://www.eclipse.org/legal/epl-v10.html |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
7 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
8 * Contributors: |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
9 * IBM Corporation - initial API and implementation |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
10 * |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
11 * Port to the D programming language: |
45 | 12 * Jacob Carlborg <doob@me.com> |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
13 *******************************************************************************/ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
14 module dwt.widgets.Display; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
15 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
16 import dwt.DWT; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
17 import dwt.DWTError; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
18 import dwt.DWTException; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
19 import dwt.graphics.Color; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
20 import dwt.graphics.Cursor; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
21 import dwt.graphics.Device; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
22 import dwt.graphics.DeviceData; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
23 import dwt.graphics.GCData; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
24 import dwt.graphics.Image; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
25 import dwt.graphics.Point; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
26 import dwt.graphics.Rectangle; |
45 | 27 import dwt.internal.C; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
28 import dwt.internal.cocoa.CGPoint; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
29 import dwt.internal.cocoa.NSApplication; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
30 import dwt.internal.cocoa.NSArray; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
31 import dwt.internal.cocoa.NSAutoreleasePool; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
32 import dwt.internal.cocoa.NSBundle; |
45 | 33 import dwt.internal.cocoa.NSButton; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
34 import dwt.internal.cocoa.NSColor; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
35 import dwt.internal.cocoa.NSColorSpace; |
45 | 36 import dwt.internal.cocoa.NSComboBox; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
37 import dwt.internal.cocoa.NSDate; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
38 import dwt.internal.cocoa.NSDictionary; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
39 import dwt.internal.cocoa.NSEvent; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
40 import dwt.internal.cocoa.NSGraphicsContext; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
41 import dwt.internal.cocoa.NSImage; |
45 | 42 import dwt.internal.cocoa.NSImageView; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
43 import dwt.internal.cocoa.NSMenu; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
44 import dwt.internal.cocoa.NSMenuItem; |
45 | 45 import dwt.internal.cocoa.NSMutableDictionary; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
46 import dwt.internal.cocoa.NSNumber; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
47 import dwt.internal.cocoa.NSObject; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
48 import dwt.internal.cocoa.NSPoint; |
45 | 49 import dwt.internal.cocoa.NSPopUpButton; |
50 import dwt.internal.cocoa.NSRange; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
51 import dwt.internal.cocoa.NSRect; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
52 import dwt.internal.cocoa.NSResponder; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
53 import dwt.internal.cocoa.NSRunLoop; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
54 import dwt.internal.cocoa.NSScreen; |
45 | 55 import dwt.internal.cocoa.NSSearchField; |
56 import dwt.internal.cocoa.NSSize; | |
57 import dwt.internal.cocoa.NSSlider; | |
58 import dwt.internal.cocoa.NSStepper; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
59 import dwt.internal.cocoa.NSString; |
45 | 60 import dwt.internal.cocoa.NSTextField; |
61 import dwt.internal.cocoa.NSTextView; | |
62 import dwt.internal.cocoa.NSThread; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
63 import dwt.internal.cocoa.NSTimer; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
64 import dwt.internal.cocoa.NSView; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
65 import dwt.internal.cocoa.NSWindow; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
66 import dwt.internal.cocoa.NSWorkspace; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
67 import dwt.internal.cocoa.OS; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
68 import dwt.internal.cocoa.SWTApplicationDelegate; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
69 import dwt.internal.cocoa.SWTWindowDelegate; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
70 import cocoa = dwt.internal.cocoa.id; |
45 | 71 import dwt.internal.cocoa.objc_super; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
72 |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
73 import tango.core.Thread; |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
74 import tango.stdc.stringz; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
75 |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
76 import dwt.dwthelper.Runnable; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
77 import dwt.dwthelper.System; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
78 import dwt.dwthelper.utils; |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
79 import Carbon = dwt.internal.c.Carbon; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
80 import dwt.internal.objc.cocoa.Cocoa; |
19
fba856099f87
Ported dwt.widgets.Display
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
17
diff
changeset
|
81 import objc = dwt.internal.objc.runtime; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
82 import dwt.widgets.Caret; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
83 import dwt.widgets.ColorDialog; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
84 import dwt.widgets.Control; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
85 import dwt.widgets.Decorations; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
86 import dwt.widgets.Dialog; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
87 import dwt.widgets.Event; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
88 import dwt.widgets.EventTable; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
89 import dwt.widgets.FontDialog; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
90 import dwt.widgets.Listener; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
91 import dwt.widgets.Menu; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
92 import dwt.widgets.MenuItem; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
93 import dwt.widgets.Monitor; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
94 import dwt.widgets.Shell; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
95 import dwt.widgets.Synchronizer; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
96 import dwt.widgets.Tray; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
97 import dwt.widgets.Widget; |
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
98 |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
99 import mambo.io; |
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
100 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
101 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
102 * Instances of this class are responsible for managing the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
103 * connection between DWT and the underlying operating |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
104 * system. Their most important function is to implement |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
105 * the DWT event loop in terms of the platform event model. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
106 * They also provide various methods for accessing information |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
107 * about the operating system, and have overall control over |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
108 * the operating system resources which DWT allocates. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
109 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
110 * Applications which are built with DWT will <em>almost always</em> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
111 * require only a single display. In particular, some platforms |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
112 * which DWT supports will not allow more than one <em>active</em> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
113 * display. In other words, some platforms do not support |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
114 * creating a new display if one already exists that has not been |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
115 * sent the <code>dispose()</code> message. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
116 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
117 * In DWT, the thread which creates a <code>Display</code> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
118 * instance is distinguished as the <em>user-interface thread</em> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
119 * for that display. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
120 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
121 * The user-interface thread for a particular display has the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
122 * following special attributes: |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
123 * <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
124 * <li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
125 * The event loop for that display must be run from the thread. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
126 * </li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
127 * <li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
128 * Some DWT API methods (notably, most of the public methods in |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
129 * <code>Widget</code> and its subclasses), may only be called |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
130 * from the thread. (To support multi-threaded user-interface |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
131 * applications, class <code>Display</code> provides inter-thread |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
132 * communication methods which allow threads other than the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
133 * user-interface thread to request that it perform operations |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
134 * on their behalf.) |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
135 * </li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
136 * <li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
137 * The thread is not allowed to construct other |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
138 * <code>Display</code>s until that display has been disposed. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
139 * (Note that, this is in addition to the restriction mentioned |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
140 * above concerning platform support for multiple displays. Thus, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
141 * the only way to have multiple simultaneously active displays, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
142 * even on platforms which support it, is to have multiple threads.) |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
143 * </li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
144 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
145 * Enforcing these attributes allows DWT to be implemented directly |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
146 * on the underlying operating system's event model. This has |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
147 * numerous benefits including smaller footprint, better use of |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
148 * resources, safer memory management, clearer program logic, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
149 * better performance, and fewer overall operating system threads |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
150 * required. The down side however, is that care must be taken |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
151 * (only) when constructing multi-threaded applications to use the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
152 * inter-thread communication mechanisms which this class provides |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
153 * when required. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
154 * </p><p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
155 * All DWT API methods which may only be called from the user-interface |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
156 * thread are distinguished in their documentation by indicating that |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
157 * they throw the "<code>ERROR_THREAD_INVALID_ACCESS</code>" |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
158 * DWT exception. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
159 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
160 * <dl> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
161 * <dt><b>Styles:</b></dt> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
162 * <dd>(none)</dd> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
163 * <dt><b>Events:</b></dt> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
164 * <dd>Close, Dispose, Settings</dd> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
165 * </dl> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
166 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
167 * IMPORTANT: This class is <em>not</em> intended to be subclassed. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
168 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
169 * @see #syncExec |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
170 * @see #asyncExec |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
171 * @see #wake |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
172 * @see #readAndDispatch |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
173 * @see #sleep |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
174 * @see Device#dispose |
45 | 175 * @see <a href="http://www.eclipse.org/swt/snippets/#display">Display snippets</a> |
176 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
177 */ |
3 | 178 public class Display : Device { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
179 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
180 /* Windows and Events */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
181 Event [] eventQueue; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
182 EventTable eventTable, filterTable; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
183 bool disposing; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
184 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
185 /* Sync/Async Widget Communication */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
186 Synchronizer synchronizer; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
187 Thread thread; |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
19
diff
changeset
|
188 bool allowTimers, runAsyncMessages_; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
189 |
45 | 190 NSGraphicsContext[] contexts; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
191 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
192 Caret currentCaret; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
193 |
45 | 194 bool dragging; |
195 Control currentControl, grabControl, trackingControl; | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
196 |
45 | 197 NSDictionary markedAttributes; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
198 |
45 | 199 Shell [] modalShells; |
200 | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
201 Menu menuBar; |
45 | 202 Menu[] menus, popups; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
203 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
204 NSApplication application; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
205 objc.Class applicationClass; |
45 | 206 NSImage dockImage; |
207 bool isEmbedded; | |
208 | |
209 Control focusControl; | |
210 | |
211 NSWindow screenWindow; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
212 NSAutoreleasePool pool; |
45 | 213 int loopCounter = 0; |
214 bool idle; | |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
215 static const short SWT_IDLE_TYPE = 1; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
216 |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
217 int[] screenID; |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
218 NSPoint[] screenCascade; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
219 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
220 /* Menus */ |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
221 // Menu menuBar; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
222 // static final int ID_TEMPORARY = 1000; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
223 // static final int ID_START = 1001; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
224 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
225 /* Display Shutdown */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
226 Runnable [] disposeList; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
227 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
228 /* System Tray */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
229 Tray tray; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
230 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
231 /* System Resources */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
232 Image errorImage, infoImage, warningImage; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
233 Cursor [] cursors; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
234 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
235 /* Key Mappings. */ |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
236 static int [] [] KeyTable = [ |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
237 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
238 /* Keyboard and Mouse Masks */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
239 [58, DWT.ALT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
240 [56, DWT.SHIFT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
241 [59, DWT.CONTROL], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
242 [55, DWT.COMMAND], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
243 [61, DWT.ALT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
244 [62, DWT.CONTROL], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
245 [60, DWT.SHIFT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
246 [54, DWT.COMMAND], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
247 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
248 /* Non-Numeric Keypad Keys */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
249 [126, DWT.ARROW_UP], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
250 [125, DWT.ARROW_DOWN], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
251 [123, DWT.ARROW_LEFT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
252 [124, DWT.ARROW_RIGHT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
253 [116, DWT.PAGE_UP], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
254 [121, DWT.PAGE_DOWN], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
255 [115, DWT.HOME], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
256 [119, DWT.END], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
257 // [??, DWT.INSERT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
258 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
259 /* Virtual and Ascii Keys */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
260 [51, DWT.BS], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
261 [36, DWT.CR], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
262 [117, DWT.DEL], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
263 [53, DWT.ESC], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
264 [76, DWT.LF], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
265 [48, DWT.TAB], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
266 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
267 /* Functions Keys */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
268 [122, DWT.F1], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
269 [120, DWT.F2], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
270 [99, DWT.F3], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
271 [118, DWT.F4], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
272 [96, DWT.F5], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
273 [97, DWT.F6], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
274 [98, DWT.F7], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
275 [100, DWT.F8], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
276 [101, DWT.F9], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
277 [109, DWT.F10], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
278 [103, DWT.F11], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
279 [111, DWT.F12], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
280 [105, DWT.F13], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
281 [107, DWT.F14], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
282 [113, DWT.F15], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
283 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
284 /* Numeric Keypad Keys */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
285 [67, DWT.KEYPAD_MULTIPLY], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
286 [69, DWT.KEYPAD_ADD], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
287 [76, DWT.KEYPAD_CR], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
288 [78, DWT.KEYPAD_SUBTRACT], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
289 [65, DWT.KEYPAD_DECIMAL], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
290 [75, DWT.KEYPAD_DIVIDE], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
291 [82, DWT.KEYPAD_0], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
292 [83, DWT.KEYPAD_1], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
293 [84, DWT.KEYPAD_2], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
294 [85, DWT.KEYPAD_3], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
295 [86, DWT.KEYPAD_4], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
296 [87, DWT.KEYPAD_5], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
297 [88, DWT.KEYPAD_6], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
298 [89, DWT.KEYPAD_7], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
299 [91, DWT.KEYPAD_8], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
300 [92, DWT.KEYPAD_9], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
301 [81, DWT.KEYPAD_EQUAL], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
302 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
303 /* Other keys */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
304 [57, DWT.CAPS_LOCK], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
305 [71, DWT.NUM_LOCK], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
306 // [??, DWT.SCROLL_LOCK], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
307 // [??, DWT.PAUSE], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
308 // [??, DWT.BREAK], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
309 // [??, DWT.PRINT_SCREEN], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
310 [114, DWT.HELP], |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
311 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
312 ]; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
313 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
314 static String APP_NAME = "DWT"; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
315 static const String ADD_WIDGET_KEY = "dwt.internal.addWidget"; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
316 static const String SWT_OBJECT = "SWT_OBJECT"; //$NON-NLS-1$ |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
317 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
318 /* Multiple Displays. */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
319 static Display Default; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
320 static Display [] Displays; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
321 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
322 /* Package Name */ |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
323 static const String PACKAGE_PREFIX = "dwt.widgets."; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
324 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
325 /* Timer */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
326 Runnable timerList []; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
327 NSTimer nsTimers []; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
328 SWTWindowDelegate timerDelegate; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
329 SWTApplicationDelegate applicationDelegate; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
330 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
331 /* Display Data */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
332 Object data; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
333 String [] keys; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
334 Object [] values; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
335 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
336 /* |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
337 * TEMPORARY CODE. Install the runnable that |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
338 * gets the current display. This code will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
339 * be removed in the future. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
340 */ |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
341 static this () { |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
342 Displays = new Display [4]; |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
343 DeviceFinder = new class Runnable { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
344 public void run () { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
345 Device device = getCurrent (); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
346 if (device is null) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
347 device = getDefault (); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
348 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
349 setDevice (device); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
350 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
351 }; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
352 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
353 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
354 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
355 * TEMPORARY CODE. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
356 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
357 static void setDevice (Device device) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
358 CurrentDevice = device; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
359 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
360 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
361 static char* ascii (String name) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
362 /*int length = name.length (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
363 char [] chars = new char [length]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
364 name.getChars (0, length, chars, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
365 byte [] buffer = new byte [length + 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
366 for (int i=0; i<length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
367 buffer [i] = cast(byte) chars [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
368 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
369 return buffer;*/ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
370 return name.toStringz(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
371 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
372 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
373 static int translateKey (int key) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
374 for (int i=0; i<KeyTable.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
375 if (KeyTable [i] [0] is key) return KeyTable [i] [1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
376 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
377 return 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
378 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
379 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
380 static int untranslateKey (int key) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
381 for (int i=0; i<KeyTable.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
382 if (KeyTable [i] [1] is key) return KeyTable [i] [0]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
383 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
384 return 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
385 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
386 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
387 void addContext (NSGraphicsContext context) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
388 if (contexts is null) contexts = new NSGraphicsContext [12]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
389 for (int i=0; i<contexts.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
390 if (contexts[i] !is null && contexts [i].id is context.id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
391 contexts [i] = context; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
392 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
393 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
394 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
395 NSGraphicsContext [] newContexts = new NSGraphicsContext [contexts.length + 12]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
396 newContexts [contexts.length] = context; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
397 System.arraycopy (contexts, 0, newContexts, 0, contexts.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
398 contexts = newContexts; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
399 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
400 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
401 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
402 * Adds the listener to the collection of listeners who will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
403 * be notified when an event of the given type occurs anywhere |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
404 * in a widget. The event type is one of the event constants |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
405 * defined in class <code>DWT</code>. When the event does occur, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
406 * the listener is notified by sending it the <code>handleEvent()</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
407 * message. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
408 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
409 * Setting the type of an event to <code>DWT.None</code> from |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
410 * within the <code>handleEvent()</code> method can be used to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
411 * change the event type and stop subsequent Java listeners |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
412 * from running. Because event filters run before other listeners, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
413 * event filters can both block other listeners and set arbitrary |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
414 * fields within an event. For this reason, event filters are both |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
415 * powerful and dangerous. They should generally be avoided for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
416 * performance, debugging and code maintenance reasons. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
417 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
418 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
419 * @param eventType the type of event to listen for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
420 * @param listener the listener which should be notified when the event occurs |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
421 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
422 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
423 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
424 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
425 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
426 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
427 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
428 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
429 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
430 * @see Listener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
431 * @see DWT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
432 * @see #removeFilter |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
433 * @see #removeListener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
434 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
435 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
436 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
437 public void addFilter (int eventType, Listener listener) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
438 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
439 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
440 if (filterTable is null) filterTable = new EventTable (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
441 filterTable.hook (eventType, listener); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
442 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
443 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
444 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
445 * Adds the listener to the collection of listeners who will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
446 * be notified when an event of the given type occurs. The event |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
447 * type is one of the event constants defined in class <code>DWT</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
448 * When the event does occur in the display, the listener is notified by |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
449 * sending it the <code>handleEvent()</code> message. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
450 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
451 * @param eventType the type of event to listen for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
452 * @param listener the listener which should be notified when the event occurs |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
453 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
454 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
455 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
456 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
457 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
458 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
459 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
460 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
461 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
462 * @see Listener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
463 * @see DWT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
464 * @see #removeListener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
465 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
466 * @since 2.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
467 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
468 public void addListener (int eventType, Listener listener) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
469 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
470 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
471 if (eventTable is null) eventTable = new EventTable (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
472 eventTable.hook (eventType, listener); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
473 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
474 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
475 void addMenu (Menu menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
476 if (menus is null) menus = new Menu [12]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
477 for (int i=0; i<menus.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
478 if (menus [i] is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
479 menus [i] = menu; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
480 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
481 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
482 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
483 Menu [] newMenus = new Menu [menus.length + 12]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
484 newMenus [menus.length] = menu; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
485 System.arraycopy (menus, 0, newMenus, 0, menus.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
486 menus = newMenus; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
487 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
488 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
489 void addPopup (Menu menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
490 if (popups is null) popups = new Menu [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
491 int length = popups.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
492 for (int i=0; i<length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
493 if (popups [i] is menu) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
494 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
495 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
496 while (index < length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
497 if (popups [index] is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
498 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
499 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
500 if (index is length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
501 Menu [] newPopups = new Menu [length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
502 System.arraycopy (popups, 0, newPopups, 0, length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
503 popups = newPopups; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
504 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
505 popups [index] = menu; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
506 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
507 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
508 void addWidget (NSObject view, Widget widget) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
509 if (view is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
510 OS.object_setInstanceVariable (view.id, SWT_OBJECT, widget.jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
511 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
512 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
513 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
514 * Causes the <code>run()</code> method of the runnable to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
515 * be invoked by the user-interface thread at the next |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
516 * reasonable opportunity. The caller of this method continues |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
517 * to run in parallel, and is not notified when the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
518 * runnable has completed. Specifying <code>null</code> as the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
519 * runnable simply wakes the user-interface thread when run. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
520 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
521 * Note that at the time the runnable is invoked, widgets |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
522 * that have the receiver as their display may have been |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
523 * disposed. Therefore, it is necessary to check for this |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
524 * case inside the runnable before accessing the widget. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
525 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
526 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
527 * @param runnable code to run on the user-interface thread or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
528 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
529 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
530 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
531 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
532 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
533 * @see #syncExec |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
534 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
535 public void asyncExec (Runnable runnable) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
536 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
537 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
538 synchronizer.asyncExec (runnable); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
539 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
540 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
541 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
542 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
543 * Causes the system hardware to emit a short sound |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
544 * (if it supports this capability). |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
545 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
546 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
547 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
548 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
549 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
550 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
551 public void beep () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
552 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
553 OS.NSBeep (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
554 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
555 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
556 void cascadeWindow (NSWindow window, NSScreen screen) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
557 NSDictionary dictionary = screen.deviceDescription(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
558 int screenNumber = (new NSNumber(dictionary.objectForKey(NSString.stringWith("NSScreenNumber")).id)).intValue(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
559 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
560 while (screenID[index] !is 0 && screenID[index] !is screenNumber) index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
561 screenID[index] = screenNumber; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
562 NSPoint cascade = screenCascade[index]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
563 //FIXME Jacob Carlborg |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
564 /*if (cascade is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
565 NSRect frame = screen.frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
566 cascade = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
567 cascade.x = frame.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
568 cascade.y = frame.y + frame.height; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
569 }*/ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
570 screenCascade[index] = window.cascadeTopLeftFromPoint(cascade); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
571 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
572 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
573 protected void checkDevice () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
574 if (thread is null) error (DWT.ERROR_WIDGET_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
575 if (thread !is Thread.getThis ()) error (DWT.ERROR_THREAD_INVALID_ACCESS); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
576 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
577 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
578 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
579 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
580 * Checks that this class can be subclassed. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
581 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
582 * IMPORTANT: See the comment in <code>Widget.checkSubclass()</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
583 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
584 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
585 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
586 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
587 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
588 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
589 * @see Widget#checkSubclass |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
590 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
591 protected void checkSubclass () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
592 if (!Display.isValidClass (this.classinfo)) error (DWT.ERROR_INVALID_SUBCLASS); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
593 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
594 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
595 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
596 * Constructs a new instance of this class. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
597 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
598 * Note: The resulting display is marked as the <em>current</em> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
599 * display. If this is the first display which has been |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
600 * constructed since the application started, it is also |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
601 * marked as the <em>default</em> display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
602 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
603 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
604 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
605 * <li>ERROR_THREAD_INVALID_ACCESS - if called from a thread that already created an existing display</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
606 * <li>ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
607 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
608 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
609 * @see #getCurrent |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
610 * @see #getDefault |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
611 * @see Widget#checkSubclass |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
612 * @see Shell |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
613 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
614 public this () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
615 this (null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
616 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
617 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
618 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
619 * Constructs a new instance of this class using the parameter. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
620 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
621 * @param data the device data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
622 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
623 public this (DeviceData data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
624 super (data); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
625 screenID = new int[32]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
626 screenCascade = new NSPoint[32]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
627 cursors = new Cursor [DWT.CURSOR_HAND + 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
628 timerDelegate = cast(SWTWindowDelegate)(new SWTWindowDelegate()).alloc().init(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
629 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
630 caretTimer = new class(currentCaret) Runnable { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
631 Caret currentCaret; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
632 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
633 this (Caret currentCaret) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
634 { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
635 this.currentCaret = currentCaret; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
636 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
637 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
638 public void run () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
639 if (currentCaret !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
640 if (currentCaret is null || currentCaret.isDisposed()) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
641 if (currentCaret.blinkCaret ()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
642 int blinkRate = currentCaret.blinkRate; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
643 if (blinkRate !is 0) timerExec (blinkRate, this); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
644 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
645 currentCaret = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
646 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
647 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
648 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
649 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
650 }; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
651 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
652 hoverTimer = new class(currentControl) Runnable { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
653 Control currentControl; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
654 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
655 this (Control currentControl) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
656 { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
657 this.currentControl = currentControl; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
658 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
659 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
660 public void run () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
661 if (currentControl !is null && !currentControl.isDisposed()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
662 currentControl.sendMouseEvent (null, DWT.MouseHover, trackingControl !is null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
663 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
664 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
665 }; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
666 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
667 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
668 static void checkDisplay (Thread thread, bool multiple) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
669 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
670 for (int i=0; i<Displays.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
671 if (Displays [i] !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
672 if (!multiple) DWT.error (DWT.ERROR_NOT_IMPLEMENTED, null, " [multiple displays]"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
673 if (Displays [i].thread is thread) DWT.error (DWT.ERROR_THREAD_INVALID_ACCESS); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
674 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
675 } |
45 | 676 } |
677 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
678 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
679 static String convertToLf(String text) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
680 char Cr = '\r'; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
681 char Lf = '\n'; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
682 int length = text.length (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
683 if (length is 0) return text; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
684 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
685 /* Check for an LF or CR/LF. Assume the rest of the string |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
686 * is formated that way. This will not work if the string |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
687 * contains mixed delimiters. */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
688 int i = text.indexOf (Lf, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
689 if (i is -1 || i is 0) return text; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
690 if (text.charAt (i - 1) !is Cr) return text; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
691 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
692 /* The string is formatted with CR/LF. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
693 * Create a new string with the LF line delimiter. */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
694 i = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
695 StringBuffer result = new StringBuffer (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
696 while (i < length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
697 int j = text.indexOf (Cr, i); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
698 if (j is -1) j = length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
699 String s = text.substring (i, j); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
700 result.append (s); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
701 i = j + 2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
702 result.append (Lf); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
703 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
704 return result.toString (); |
45 | 705 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
706 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
707 void clearModal (Shell shell) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
708 if (modalShells is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
709 int index = 0, length_ = modalShells.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
710 while (index < length_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
711 if (modalShells [index] is shell) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
712 if (modalShells [index] is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
713 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
714 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
715 if (index is length_) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
716 System.arraycopy (modalShells, index + 1, modalShells, index, --length_ - index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
717 modalShells [length_] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
718 if (index is 0 && modalShells [0] is null) modalShells = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
719 Shell [] shells = getShells (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
720 for (int i=0; i<shells.length; i++) shells [i].updateModal (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
721 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
722 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
723 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
724 * Requests that the connection between DWT and the underlying |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
725 * operating system be closed. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
726 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
727 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
728 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
729 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
730 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
731 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
732 * @see Device#dispose |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
733 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
734 * @since 2.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
735 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
736 public void close () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
737 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
738 Event event = new Event (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
739 sendEvent (DWT.Close, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
740 if (event.doit) dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
741 } |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
742 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
743 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
744 * Creates the device in the operating system. If the device |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
745 * does not have a handle, this method may do nothing depending |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
746 * on the device. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
747 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
748 * This method is called before <code>init</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
749 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
750 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
751 * @param data the DeviceData which describes the receiver |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
752 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
753 * @see #init |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
754 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
755 protected void create (DeviceData data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
756 checkSubclass (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
757 checkDisplay (thread = Thread.getThis (), false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
758 createDisplay (data); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
759 register (this); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
760 synchronizer = new Synchronizer (this); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
761 if (Default is null) Default = this; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
762 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
763 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
764 void createDisplay (DeviceData data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
765 if (OS.VERSION < 0x1050) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
766 System.out_.println ("***WARNING: DWT requires MacOS X version {}{}{}{}" , 10 , "." , 5 , " or greater"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
767 System.out_.println ("***WARNING: Detected: {}{}{}{}{}" , Integer.toHexString((OS.VERSION & 0xFF00) >> 8) , "." , Integer.toHexString((OS.VERSION & 0xF0) >> 4) , "." , Integer.toHexString(OS.VERSION & 0xF)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
768 error(DWT.ERROR_NOT_IMPLEMENTED); |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
769 } |
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
770 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
771 NSThread nsthread = NSThread.currentThread(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
772 NSMutableDictionary dictionary = nsthread.threadDictionary(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
773 NSString key = NSString.stringWith("SWT_NSAutoreleasePool"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
774 pool = new NSAutoreleasePool(dictionary.objectForKey(key)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
775 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
776 application = NSApplication.sharedApplication(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
777 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
778 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
779 * TODO: If an NSApplication is already running we don't want to create another NSApplication. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
780 * But if we don't we won't get mouse events, since we currently need to subclass NSApplication and intercept sendEvent to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
781 * deliver mouse events correctly to widgets. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
782 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
783 if (!application.isRunning()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
784 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
785 * Feature in the Macintosh. On OS 10.2, it is necessary |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
786 * to explicitly check in with the Process Manager and set |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
787 * the current process to be the front process in order for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
788 * windows to come to the front by default. The fix is call |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
789 * both GetCurrentProcess() and SetFrontProcess(). |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
790 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
791 * NOTE: It is not actually necessary to use the process |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
792 * serial number returned by GetCurrentProcess() in the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
793 * call to SetFrontProcess() (ie. kCurrentProcess can be |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
794 * used) but both functions must be called in order for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
795 * windows to come to the front. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
796 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
797 Carbon.ProcessSerialNumber psn; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
798 if (OS.GetCurrentProcess (&psn) is OS.noErr) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
799 int pid = OS.getpid (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
800 char* ptr = OS.getenv (ascii ("APP_NAME_" ~ Integer.toString(pid))); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
801 if (ptr is null && APP_NAME !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
802 ptr = NSString.stringWith(APP_NAME).UTF8String(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
803 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
804 if (ptr !is null) OS.CPSSetProcessName (&psn, ptr); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
805 OS.TransformProcessType (&psn, OS.kProcessTransformToForegroundApplication); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
806 OS.SetFrontProcess (&psn); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
807 ptr = OS.getenv (ascii ("APP_ICON_" ~ Integer.toString(pid))); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
808 if (ptr !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
809 NSString path = NSString.stringWithUTF8String (ptr); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
810 NSImage image = cast(NSImage) (new NSImage()).alloc(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
811 image = image.initByReferencingFile(path); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
812 dockImage = image; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
813 application.setApplicationIconImage(image); |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
814 } |
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
815 } |
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
816 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
817 String className = "SWTApplication"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
818 objc.Class cls; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
819 if ((cls = cast(objc.Class) OS.objc_lookUpClass (className)) is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
820 objc.IMP proc2 = cast(objc.IMP) &applicationProc2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
821 objc.IMP proc3 = cast(objc.IMP) &applicationProc3; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
822 objc.IMP proc6 = cast(objc.IMP) &applicationProc6; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
823 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSApplication, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
824 OS.class_addMethod(cls, OS.sel_registerName("sendEvent:"), proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
825 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
826 static if ((void*).sizeof > int.sizeof) // 64bit target |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
827 OS.class_addMethod(cls, OS.sel_nextEventMatchingMask_untilDate_inMode_dequeue_, proc6, "@:Q@@B"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
828 else |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
829 OS.class_addMethod(cls, OS.sel_nextEventMatchingMask_untilDate_inMode_dequeue_, proc6, "@:I@@B"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
830 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
831 OS.class_addMethod(cls, OS.sel_isRunning, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
832 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
833 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
834 applicationClass = OS.object_setClass(application.id, cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
835 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
836 isEmbedded = true; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
837 } |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
838 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
839 // application = new NSApplication(OS.objc_msgSend(cls, OS.sel_sharedApplication)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
840 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
841 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
842 static void deregister (Display display) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
843 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
844 for (int i=0; i<Displays.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
845 if (display is Displays [i]) Displays [i] = null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
846 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
847 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
848 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
849 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
850 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
851 * Destroys the device in the operating system and releases |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
852 * the device's handle. If the device does not have a handle, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
853 * this method may do nothing depending on the device. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
854 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
855 * This method is called after <code>release</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
856 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
857 * @see Device#dispose |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
858 * @see #release |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
859 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
860 protected void destroy () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
861 if (this is Default) Default = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
862 deregister (this); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
863 destroyDisplay (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
864 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
865 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
866 void destroyDisplay () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
867 application = null; |
45 | 868 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
869 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
870 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
871 * Causes the <code>run()</code> method of the runnable to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
872 * be invoked by the user-interface thread just before the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
873 * receiver is disposed. Specifying a <code>null</code> runnable |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
874 * is ignored. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
875 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
876 * @param runnable code to run at dispose time. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
877 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
878 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
879 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
880 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
881 * </ul> |
45 | 882 */ |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
883 public void disposeExec (Runnable runnable) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
884 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
885 if (disposeList is null) disposeList = new Runnable [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
886 for (int i=0; i<disposeList.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
887 if (disposeList [i] is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
888 disposeList [i] = runnable; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
889 return; |
45 | 890 } |
891 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
892 Runnable [] newDisposeList = new Runnable [disposeList.length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
893 SimpleType!(Runnable).arraycopy (disposeList, 0, newDisposeList, 0, disposeList.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
894 newDisposeList [disposeList.length] = runnable; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
895 disposeList = newDisposeList; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
896 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
897 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
898 void error (int code) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
899 DWT.error(code); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
900 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
901 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
902 bool filterEvent (Event event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
903 if (filterTable !is null) filterTable.sendEvent (event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
904 return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
905 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
906 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
907 bool filters (int eventType) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
908 if (filterTable is null) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
909 return filterTable.hooks (eventType); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
910 } |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
49
diff
changeset
|
911 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
912 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
913 * Given the operating system handle for a widget, returns |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
914 * the instance of the <code>Widget</code> subclass which |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
915 * represents it in the currently running application, if |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
916 * such exists, or null if no matching widget can be found. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
917 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
918 * <b>IMPORTANT:</b> This method should not be called from |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
919 * application code. The arguments are platform-specific. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
920 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
921 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
922 * @param handle the handle for the widget |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
923 * @return the DWT widget that the handle represents |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
924 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
925 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
926 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
927 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
928 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
929 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
930 public Widget findWidget (objc.id handle) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
931 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
932 return getWidget (handle); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
933 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
934 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
935 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
936 * Given the operating system handle for a widget, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
937 * and widget-specific id, returns the instance of |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
938 * the <code>Widget</code> subclass which represents |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
939 * the handle/id pair in the currently running application, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
940 * if such exists, or null if no matching widget can be found. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
941 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
942 * <b>IMPORTANT:</b> This method should not be called from |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
943 * application code. The arguments are platform-specific. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
944 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
945 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
946 * @param handle the handle for the widget |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
947 * @param id the id for the subwidget (usually an item) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
948 * @return the DWT widget that the handle/id pair represents |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
949 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
950 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
951 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
952 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
953 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
954 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
955 * @since 3.1 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
956 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
957 public Widget findWidget (objc.id handle, int id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
958 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
959 return getWidget (handle); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
960 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
961 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
962 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
963 * Given a widget and a widget-specific id, returns the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
964 * instance of the <code>Widget</code> subclass which represents |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
965 * the widget/id pair in the currently running application, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
966 * if such exists, or null if no matching widget can be found. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
967 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
968 * @param widget the widget |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
969 * @param id the id for the subwidget (usually an item) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
970 * @return the DWT subwidget (usually an item) that the widget/id pair represents |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
971 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
972 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
973 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
974 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
975 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
976 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
977 * @since 3.3 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
978 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
979 public Widget findWidget (Widget widget, int id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
980 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
981 return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
982 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
983 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
984 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
985 * Returns the display which the given thread is the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
986 * user-interface thread for, or null if the given thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
987 * is not a user-interface thread for any display. Specifying |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
988 * <code>null</code> as the thread will return <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
989 * for the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
990 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
991 * @param thread the user-interface thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
992 * @return the display for the given thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
993 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
994 public static Display findDisplay (Thread thread) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
995 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
996 for (int i=0; i<Displays.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
997 Display display = Displays [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
998 if (display !is null && display.thread is thread) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
999 return display; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1000 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1001 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1002 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1003 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1004 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1005 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1006 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1007 * Returns the currently active <code>Shell</code>, or null |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1008 * if no shell belonging to the currently running application |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1009 * is active. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1010 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1011 * @return the active shell or null |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1012 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1013 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1014 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1015 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1016 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1017 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1018 public Shell getActiveShell () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1019 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1020 NSArray windows = application.windows(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1021 int count = cast(int)/*64*/windows.count(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1022 for (int i = 0; i < count; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1023 NSWindow win = new NSWindow(windows.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1024 if (win.isKeyWindow()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1025 Widget widget = getWidget(win.contentView()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1026 if (cast(Shell) widget) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1027 return cast(Shell)widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1028 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1029 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1030 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1031 return null; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1032 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1033 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1034 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1035 * Returns a rectangle describing the receiver's size and location. Note that |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1036 * on multi-monitor systems the origin can be negative. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1037 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1038 * @return the bounding rectangle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1039 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1040 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1041 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1042 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1043 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1044 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1045 public Rectangle getBounds () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1046 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1047 NSArray screens = NSScreen.screens(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1048 return getBounds (screens); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1049 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1050 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1051 Rectangle getBounds (NSArray screens) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1052 NSRect primaryFrame = (new NSScreen(screens.objectAtIndex(0))).frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1053 CGFloat minX = CGFloat.max, maxX = CGFloat.min; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1054 CGFloat minY = CGFloat.max, maxY = CGFloat.min; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1055 NSUInteger count = screens.count(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1056 for (NSUInteger i = 0; i < count; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1057 NSScreen screen = new NSScreen(screens.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1058 NSRect frame = screen.frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1059 CGFloat x1 = frame.x, x2 = frame.x + frame.width; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1060 CGFloat y1 = primaryFrame.height - frame.y, y2 = primaryFrame.height - (frame.y + frame.height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1061 if (x1 < minX) minX = x1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1062 if (x2 < minX) minX = x2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1063 if (x1 > maxX) maxX = x1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1064 if (x2 > maxX) maxX = x2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1065 if (y1 < minY) minY = y1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1066 if (y2 < minY) minY = y2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1067 if (y1 > maxY) maxY = y1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1068 if (y2 > maxY) maxY = y2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1069 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1070 return new Rectangle (cast(int)minX, cast(int)minY, cast(int)(maxX - minX), cast(int)(maxY - minY)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1071 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1072 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1073 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1074 * Returns the display which the currently running thread is |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1075 * the user-interface thread for, or null if the currently |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1076 * running thread is not a user-interface thread for any display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1077 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1078 * @return the current display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1079 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1080 public static Display getCurrent () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1081 return findDisplay (Thread.getThis ()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1082 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1083 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1084 int getCaretBlinkTime () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1085 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1086 return 560; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1087 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1088 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1089 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1090 * Returns a rectangle which describes the area of the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1091 * receiver which is capable of displaying data. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1092 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1093 * @return the client area |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1094 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1095 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1096 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1097 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1098 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1099 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1100 * @see #getBounds |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1101 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1102 public Rectangle getClientArea () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1103 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1104 NSArray screens = NSScreen.screens(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1105 if (screens.count() !is 1) return getBounds (screens); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1106 NSScreen screen = new NSScreen(screens.objectAtIndex(0)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1107 NSRect frame = screen.frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1108 NSRect visibleFrame = screen.visibleFrame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1109 CGFloat y = frame.height - (visibleFrame.y + visibleFrame.height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1110 return new Rectangle(cast(int)visibleFrame.x, cast(int)y, cast(int)visibleFrame.width, cast(int)visibleFrame.height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1111 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1112 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1113 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1114 * Returns the control which the on-screen pointer is currently |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1115 * over top of, or null if it is not currently over one of the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1116 * controls built by the currently running application. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1117 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1118 * @return the control under the cursor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1119 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1120 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1121 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1122 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1123 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1124 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1125 public Control getCursorControl () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1126 checkDevice(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1127 return findControl(null, false, false, true); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1128 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1129 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1130 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1131 * Returns the location of the on-screen pointer relative |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1132 * to the top left corner of the screen. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1133 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1134 * @return the cursor location |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1135 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1136 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1137 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1138 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1139 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1140 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1141 public Point getCursorLocation () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1142 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1143 NSPoint location = NSEvent.mouseLocation(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1144 NSRect primaryFrame = getPrimaryFrame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1145 return new Point (cast(int) location.x, cast(int) (primaryFrame.height - location.y)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1146 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1147 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1148 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1149 * Returns an array containing the recommended cursor sizes. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1150 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1151 * @return the array of cursor sizes |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1152 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1153 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1154 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1155 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1156 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1157 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1158 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1159 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1160 public Point [] getCursorSizes () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1161 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1162 return [new Point (16, 16)]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1163 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1164 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1165 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1166 * Returns the default display. One is created (making the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1167 * thread that invokes this method its user-interface thread) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1168 * if it did not already exist. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1169 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1170 * @return the default display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1171 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1172 public static Display getDefault () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1173 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1174 if (Default is null) Default = new Display (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1175 return Default; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1176 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1177 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1178 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1179 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1180 * Returns the application defined property of the receiver |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1181 * with the specified name, or null if it has not been set. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1182 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1183 * Applications may have associated arbitrary objects with the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1184 * receiver in this fashion. If the objects stored in the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1185 * properties need to be notified when the display is disposed |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1186 * of, it is the application's responsibility to provide a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1187 * <code>disposeExec()</code> handler which does so. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1188 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1189 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1190 * @param key the name of the property |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1191 * @return the value of the property or null if it has not been set |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1192 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1193 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1194 * <li>ERROR_NULL_ARGUMENT - if the key is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1195 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1196 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1197 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1198 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1199 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1200 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1201 * @see #setData(String, Object) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1202 * @see #disposeExec(Runnable) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1203 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1204 public Object getData (String key) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1205 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1206 //if (key is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1207 if (keys is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1208 for (int i=0; i<keys.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1209 if (keys [i].equals (key)) return values [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1210 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1211 return null; |
45 | 1212 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1213 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1214 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1215 * Returns the application defined, display specific data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1216 * associated with the receiver, or null if it has not been |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1217 * set. The <em>display specific data</em> is a single, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1218 * unnamed field that is stored with every display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1219 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1220 * Applications may put arbitrary objects in this field. If |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1221 * the object stored in the display specific data needs to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1222 * be notified when the display is disposed of, it is the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1223 * application's responsibility to provide a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1224 * <code>disposeExec()</code> handler which does so. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1225 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1226 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1227 * @return the display specific data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1228 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1229 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1230 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1231 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1232 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1233 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1234 * @see #setData(Object) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1235 * @see #disposeExec(Runnable) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1236 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1237 public Object getData () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1238 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1239 return data; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1240 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1241 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1242 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1243 * Returns the button dismissal align_ment, one of <code>LEFT</code> or <code>RIGHT</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1244 * The button dismissal align_ment is the ordering that should be used when positioning the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1245 * default dismissal button for a dialog. For example, in a dialog that contains an OK and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1246 * CANCEL button, on platforms where the button dismissal align_ment is <code>LEFT</code>, the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1247 * button ordering should be OK/CANCEL. When button dismissal align_ment is <code>RIGHT</code>, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1248 * the button ordering should be CANCEL/OK. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1249 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1250 * @return the button dismissal order |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1251 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1252 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1253 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1254 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1255 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1256 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1257 * @since 2.1 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1258 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1259 public int getDismissalAlignment () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1260 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1261 return DWT.RIGHT; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1262 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1263 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1264 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1265 * Returns the longest duration, in milliseconds, between |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1266 * two mouse button clicks that will be considered a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1267 * <em>double click</em> by the underlying operating system. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1268 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1269 * @return the double click time |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1270 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1271 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1272 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1273 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1274 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1275 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1276 public int getDoubleClickTime () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1277 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1278 return 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1279 // return OS.GetDblTime () * 1000 / 60; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1280 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1281 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1282 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1283 * Returns the control which currently has keyboard focus, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1284 * or null if keyboard events are not currently going to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1285 * any of the controls built by the currently running |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1286 * application. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1287 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1288 * @return the control under the cursor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1289 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1290 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1291 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1292 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1293 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1294 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1295 public Control getFocusControl () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1296 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1297 NSWindow window = application.keyWindow(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1298 return GetFocusControl(window); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1299 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1300 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1301 static Control GetFocusControl(NSWindow window) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1302 if (window !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1303 NSResponder responder = window.firstResponder(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1304 if (responder !is null && !responder.respondsToSelector(OS.sel_superview)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1305 return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1306 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1307 NSView view = new NSView(responder.id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1308 if (view !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1309 do { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1310 Widget widget = GetWidget (view.id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1311 if (cast(Control)widget) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1312 return cast(Control)widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1313 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1314 view = view.superview(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1315 } while (view !is null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1316 } |
45 | 1317 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1318 return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1319 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1320 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1321 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1322 * Returns true when the high contrast mode is enabled. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1323 * Otherwise, false is returned. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1324 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1325 * Note: This operation is a hint and is not supported on |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1326 * platforms that do not have this concept. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1327 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1328 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1329 * @return the high contrast mode |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1330 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1331 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1332 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1333 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1334 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1335 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1336 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1337 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1338 public bool getHighContrast () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1339 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1340 return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1341 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1342 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1343 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1344 * Returns the maximum allowed depth of icons on this display, in bits per pixel. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1345 * On some platforms, this may be different than the actual depth of the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1346 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1347 * @return the maximum icon depth |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1348 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1349 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1350 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1351 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1352 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1353 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1354 * @see Device#getDepth |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1355 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1356 public int getIconDepth () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1357 return getDepth (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1358 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1359 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1360 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1361 * Returns an array containing the recommended icon sizes. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1362 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1363 * @return the array of icon sizes |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1364 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1365 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1366 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1367 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1368 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1369 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1370 * @see Decorations#setImages(Image[]) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1371 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1372 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1373 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1374 public Point [] getIconSizes () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1375 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1376 return [ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1377 new Point (16, 16), new Point (32, 32), |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1378 new Point (64, 64), new Point (128, 128)]; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1379 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1380 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1381 int getLastEventTime () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1382 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1383 * This code is intentionally commented. Event time is |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1384 * in seconds and we need an accurate time in milliseconds. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1385 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1386 // return (int) (OS.GetLastUserEventTime () * 1000.0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1387 return cast(int) System.currentTimeMillis (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1388 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1389 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1390 Menu [] getMenus (Decorations shell) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1391 if (menus is null) return new Menu [0]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1392 int count = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1393 for (int i = 0; i < menus.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1394 Menu menu = menus[i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1395 if (menu !is null && menu.parent is shell) count++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1396 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1397 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1398 Menu[] result = new Menu[count]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1399 for (int i = 0; i < menus.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1400 Menu menu = menus[i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1401 if (menu !is null && menu.parent is shell) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1402 result[index++] = menu; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1403 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1404 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1405 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1406 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1407 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1408 int getMessageCount () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1409 return synchronizer.getMessageCount (); |
45 | 1410 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1411 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1412 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1413 * Returns an array of monitors attached to the device. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1414 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1415 * @return the array of monitors |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1416 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1417 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1418 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1419 public dwt.widgets.Monitor.Monitor [] getMonitors () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1420 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1421 NSArray screens = NSScreen.screens(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1422 NSRect primaryFrame = (new NSScreen(screens.objectAtIndex(0))).frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1423 NSUInteger count = screens.count(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1424 dwt.widgets.Monitor.Monitor [] monitors = new dwt.widgets.Monitor.Monitor [count]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1425 for (NSUInteger i=0; i<count; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1426 dwt.widgets.Monitor.Monitor monitor = new dwt.widgets.Monitor.Monitor (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1427 NSScreen screen = new NSScreen(screens.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1428 NSRect frame = screen.frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1429 monitor.x = cast(int)frame.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1430 monitor.y = cast(int)(primaryFrame.height - (frame.y + frame.height)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1431 monitor.width = cast(int)frame.width; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1432 monitor.height = cast(int)frame.height; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1433 NSRect visibleFrame = screen.visibleFrame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1434 monitor.clientX = cast(int)visibleFrame.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1435 monitor.clientY = cast(int)(primaryFrame.height - (visibleFrame.y + visibleFrame.height)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1436 monitor.clientWidth = cast(int)visibleFrame.width; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1437 monitor.clientHeight = cast(int)visibleFrame.height; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1438 monitors [i] = monitor; |
45 | 1439 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1440 return monitors; |
45 | 1441 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1442 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1443 NSRect getPrimaryFrame () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1444 NSArray screens = NSScreen.screens(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1445 return (new NSScreen(screens.objectAtIndex(0))).frame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1446 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1447 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1448 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1449 * Returns the primary monitor for that device. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1450 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1451 * @return the primary monitor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1452 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1453 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1454 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1455 public dwt.widgets.Monitor.Monitor getPrimaryMonitor () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1456 checkDevice (); |
15
2952d5604c0a
Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
0
diff
changeset
|
1457 dwt.widgets.Monitor.Monitor monitor = new dwt.widgets.Monitor.Monitor (); |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1458 NSArray screens = NSScreen.screens(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1459 NSScreen screen = new NSScreen(screens.objectAtIndex(0)); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1460 NSRect frame = screen.frame(); |
7 | 1461 monitor.x = cast(int)frame.x; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1462 monitor.y = cast(int)(frame.height - (frame.y + frame.height)); |
7 | 1463 monitor.width = cast(int)frame.width; |
1464 monitor.height = cast(int)frame.height; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1465 NSRect visibleFrame = screen.visibleFrame(); |
7 | 1466 monitor.clientX = cast(int)visibleFrame.x; |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1467 monitor.clientY = cast(int)(frame.height - (visibleFrame.y + visibleFrame.height)); |
7 | 1468 monitor.clientWidth = cast(int)visibleFrame.width; |
1469 monitor.clientHeight = cast(int)visibleFrame.height; | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1470 return monitor; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1471 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1472 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1473 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1474 * Returns a (possibly empty) array containing all shells which have |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1475 * not been disposed and have the receiver as their display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1476 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1477 * @return the receiver's shells |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1478 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1479 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1480 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1481 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1482 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1483 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1484 public Shell [] getShells () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1485 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1486 NSArray windows = application.windows(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1487 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1488 Shell [] result = new Shell [windows.count()]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1489 for (int i = 0; i < result.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1490 NSWindow window = new NSWindow(windows.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1491 Widget widget = getWidget(window.contentView()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1492 if (cast(Shell) widget) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1493 result[index++] = cast(Shell)widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1494 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1495 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1496 if (index is result.length) return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1497 Shell [] newResult = new Shell [index]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1498 System.arraycopy (result, 0, newResult, 0, index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1499 return newResult; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1500 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1501 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1502 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1503 * Gets the synchronizer used by the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1504 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1505 * @return the receiver's synchronizer |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1506 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1507 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1508 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1509 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1510 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1511 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1512 * @since 3.4 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1513 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1514 public Synchronizer getSynchronizer () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1515 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1516 return synchronizer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1517 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1518 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1519 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1520 * Returns the thread that has invoked <code>syncExec</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1521 * or null if no such runnable is currently being invoked by |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1522 * the user-interface thread. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1523 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1524 * Note: If a runnable invoked by asyncExec is currently |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1525 * running, this method will return null. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1526 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1527 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1528 * @return the receiver's sync-interface thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1529 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1530 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1531 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1532 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1533 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1534 public Thread getSyncThread () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1535 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1536 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1537 return synchronizer.syncThread; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1538 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1539 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1540 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1541 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1542 * Returns the matching standard color for the given |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1543 * constant, which should be one of the color constants |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1544 * specified in class <code>DWT</code>. Any value other |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1545 * than one of the DWT color constants which is passed |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1546 * in will result in the color black. This color should |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1547 * not be free'd because it was allocated by the system, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1548 * not the application. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1549 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1550 * @param id the color constant |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1551 * @return the matching color |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1552 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1553 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1554 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1555 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1556 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1557 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1558 * @see DWT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1559 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1560 public Color getSystemColor (int id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1561 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1562 NSColor color = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1563 switch (id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1564 case DWT.COLOR_INFO_FOREGROUND: return super.getSystemColor (DWT.COLOR_BLACK); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1565 case DWT.COLOR_INFO_BACKGROUND: return Color.cocoa_new (this, [0xFF / 255f, 0xFF / 255f, 0xE1 / 255f, 1]); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1566 case DWT.COLOR_TITLE_FOREGROUND: color = NSColor.windowFrameTextColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1567 case DWT.COLOR_TITLE_BACKGROUND: color = NSColor.secondarySelectedControlColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1568 case DWT.COLOR_TITLE_BACKGROUND_GRADIENT: color = NSColor.windowFrameColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1569 case DWT.COLOR_TITLE_INACTIVE_FOREGROUND: color = NSColor.disabledControlTextColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1570 case DWT.COLOR_TITLE_INACTIVE_BACKGROUND: color = NSColor.secondarySelectedControlColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1571 case DWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT: color = NSColor.secondarySelectedControlColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1572 case DWT.COLOR_WIDGET_DARK_SHADOW: color = NSColor.controlDarkShadowColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1573 case DWT.COLOR_WIDGET_NORMAL_SHADOW: color = NSColor.controlShadowColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1574 case DWT.COLOR_WIDGET_LIGHT_SHADOW: color = NSColor.controlHighlightColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1575 case DWT.COLOR_WIDGET_HIGHLIGHT_SHADOW: color = NSColor.controlLightHighlightColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1576 case DWT.COLOR_WIDGET_BACKGROUND: color = NSColor.controlHighlightColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1577 case DWT.COLOR_WIDGET_FOREGROUND: color = NSColor.controlTextColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1578 case DWT.COLOR_WIDGET_BORDER: return super.getSystemColor (DWT.COLOR_BLACK); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1579 case DWT.COLOR_LIST_FOREGROUND: color = NSColor.textColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1580 case DWT.COLOR_LIST_BACKGROUND: color = NSColor.textBackgroundColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1581 case DWT.COLOR_LIST_SELECTION_TEXT: color = NSColor.selectedTextColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1582 case DWT.COLOR_LIST_SELECTION: color = NSColor.selectedTextBackgroundColor(); break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1583 default: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1584 return super.getSystemColor (id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1585 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1586 if (color is null) return super.getSystemColor(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1587 color = color.colorUsingColorSpace(NSColorSpace.deviceRGBColorSpace()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1588 if (color is null) return super.getSystemColor(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1589 CGFloat[] components = new CGFloat[color.numberOfComponents()]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1590 color.getComponents(components.ptr); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1591 return Color.cocoa_new (this, [components[0], components[1], components[2], components[3]]); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1592 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1593 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1594 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1595 * Returns the matching standard platform cursor for the given |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1596 * constant, which should be one of the cursor constants |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1597 * specified in class <code>DWT</code>. This cursor should |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1598 * not be free'd because it was allocated by the system, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1599 * not the application. A value of <code>null</code> will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1600 * be returned if the supplied constant is not an DWT cursor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1601 * constant. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1602 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1603 * @param id the DWT cursor constant |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1604 * @return the corresponding cursor or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1605 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1606 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1607 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1608 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1609 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1610 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1611 * @see DWT#CURSOR_ARROW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1612 * @see DWT#CURSOR_WAIT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1613 * @see DWT#CURSOR_CROSS |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1614 * @see DWT#CURSOR_APPSTARTING |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1615 * @see DWT#CURSOR_HELP |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1616 * @see DWT#CURSOR_SIZEALL |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1617 * @see DWT#CURSOR_SIZENESW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1618 * @see DWT#CURSOR_SIZENS |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1619 * @see DWT#CURSOR_SIZENWSE |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1620 * @see DWT#CURSOR_SIZEWE |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1621 * @see DWT#CURSOR_SIZEN |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1622 * @see DWT#CURSOR_SIZES |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1623 * @see DWT#CURSOR_SIZEE |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1624 * @see DWT#CURSOR_SIZEW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1625 * @see DWT#CURSOR_SIZENE |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1626 * @see DWT#CURSOR_SIZESE |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1627 * @see DWT#CURSOR_SIZESW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1628 * @see DWT#CURSOR_SIZENW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1629 * @see DWT#CURSOR_UPARROW |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1630 * @see DWT#CURSOR_IBEAM |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1631 * @see DWT#CURSOR_NO |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1632 * @see DWT#CURSOR_HAND |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1633 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1634 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1635 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1636 public Cursor getSystemCursor (int id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1637 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1638 if (!(0 <= id && id < cursors.length)) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1639 if (cursors [id] is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1640 cursors [id] = new Cursor (this, id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1641 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1642 return cursors [id]; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1643 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1644 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1645 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1646 * Returns the matching standard platform image for the given |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1647 * constant, which should be one of the icon constants |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1648 * specified in class <code>DWT</code>. This image should |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1649 * not be free'd because it was allocated by the system, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1650 * not the application. A value of <code>null</code> will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1651 * be returned either if the supplied constant is not an |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1652 * DWT icon constant or if the platform does not define an |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1653 * image that corresponds to the constant. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1654 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1655 * @param id the DWT icon constant |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1656 * @return the corresponding image or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1657 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1658 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1659 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1660 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1661 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1662 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1663 * @see DWT#ICON_ERROR |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1664 * @see DWT#ICON_INFORMATION |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1665 * @see DWT#ICON_QUESTION |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1666 * @see DWT#ICON_WARNING |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1667 * @see DWT#ICON_WORKING |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1668 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1669 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1670 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1671 public Image getSystemImage (int id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1672 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1673 switch(id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1674 case DWT.ICON_ERROR: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1675 if (errorImage !is null) return errorImage; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1676 NSImage nsImage = NSWorkspace.sharedWorkspace ().iconForFileType (new NSString (OS.NSFileTypeForHFSTypeCode (OS.kAlertStopIcon))); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1677 if (nsImage is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1678 nsImage.retain (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1679 return errorImage = Image.cocoa_new (this, DWT.ICON, nsImage); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1680 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1681 case DWT.ICON_INFORMATION: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1682 case DWT.ICON_QUESTION: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1683 case DWT.ICON_WORKING: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1684 if (infoImage !is null) return infoImage; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1685 NSImage nsImage = NSWorkspace.sharedWorkspace ().iconForFileType (new NSString (OS.NSFileTypeForHFSTypeCode (OS.kAlertNoteIcon))); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1686 if (nsImage is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1687 nsImage.retain (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1688 return infoImage = Image.cocoa_new (this, DWT.ICON, nsImage); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1689 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1690 case DWT.ICON_WARNING: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1691 if (warningImage !is null) return warningImage; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1692 NSImage nsImage = NSWorkspace.sharedWorkspace ().iconForFileType (new NSString (OS.NSFileTypeForHFSTypeCode (OS.kAlertCautionIcon))); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1693 if (nsImage is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1694 nsImage.retain (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1695 return warningImage = Image.cocoa_new (this, DWT.ICON, nsImage); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1696 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1697 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1698 default: |
45 | 1699 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1700 return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1701 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1702 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1703 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1704 * Returns the single instance of the system tray or null |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1705 * when there is no system tray available for the platform. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1706 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1707 * @return the system tray or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1708 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1709 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1710 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1711 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1712 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1713 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1714 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1715 public Tray getSystemTray () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1716 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1717 if (tray !is null) return tray; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1718 return tray = new Tray (this, DWT.NONE); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1719 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1720 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1721 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1722 * Returns the user-interface thread for the receiver. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1723 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1724 * @return the receiver's user-interface thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1725 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1726 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1727 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1728 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1729 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1730 public Thread getThread () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1731 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1732 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1733 return thread; |
45 | 1734 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1735 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1736 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1737 int getToolTipTime () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1738 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1739 //TODO get OS value (NSTooltipManager?) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1740 return 560; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1741 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1742 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1743 Widget getWidget (objc.id id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1744 return GetWidget (id); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1745 } |
45 | 1746 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1747 static Widget GetWidget (objc.id id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1748 if (id is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1749 void* jniRef; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1750 OS.object_getInstanceVariable(id, SWT_OBJECT, jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1751 if (jniRef is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1752 return cast(Widget)OS.JNIGetObject(jniRef); |
45 | 1753 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1754 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1755 Widget getWidget (NSView view) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1756 if (view is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1757 return getWidget(view.id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1758 } |
45 | 1759 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1760 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1761 * Initializes any internal resources needed by the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1762 * device. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1763 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1764 * This method is called after <code>create</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1765 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1766 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1767 * @see #create |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1768 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1769 protected void init_ () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1770 super.init_ (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1771 initClasses (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1772 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1773 /*if (!isEmbedded) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1774 initApplicationDelegate(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1775 application.finishLaunching(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1776 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1777 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1778 timerDelegate = cast(SWTWindowDelegate)(new SWTWindowDelegate()).alloc().init(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1779 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1780 NSTextView textView = cast(NSTextView)(new NSTextView()).alloc(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1781 textView.initWithFrame (NSRect ()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1782 markedAttributes = textView.markedTextAttributes (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1783 markedAttributes.retain (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1784 textView.release ();*/ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1785 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1786 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1787 void initApplicationDelegate() { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1788 String className = "SWTApplicationDelegate"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1789 if (OS.objc_lookUpClass (className) is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1790 objc.IMP appProc3 = cast(objc.IMP) &applicationDelegateProc; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1791 objc.Class cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSObject, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1792 OS.class_addMethod(cls, OS.sel_applicationWillFinishLaunching_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1793 OS.class_addMethod(cls, OS.sel_terminate_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1794 OS.class_addMethod(cls, OS.sel_orderFrontStandardAboutPanel_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1795 OS.class_addMethod(cls, OS.sel_hideOtherApplications_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1796 OS.class_addMethod(cls, OS.sel_hide_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1797 OS.class_addMethod(cls, OS.sel_unhideAllApplications_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1798 OS.class_addMethod(cls, OS.sel_applicationShouldTerminate_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1799 OS.class_addMethod(cls, OS.sel_applicationWillTerminate_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1800 OS.class_addMethod(cls, OS.sel_applicationWillResignActive_, appProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1801 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1802 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1803 applicationDelegate = cast(SWTApplicationDelegate)(new SWTApplicationDelegate()).alloc().init(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1804 application.setDelegate(applicationDelegate); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1805 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1806 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1807 void addEventMethods (objc.Class cls, objc.IMP proc2, objc.IMP proc3, objc.IMP drawRectProc) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1808 OS.class_addMethod(cls, OS.sel_mouseDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1809 OS.class_addMethod(cls, OS.sel_mouseUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1810 OS.class_addMethod(cls, OS.sel_scrollWheel_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1811 OS.class_addMethod(cls, OS.sel_rightMouseDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1812 OS.class_addMethod(cls, OS.sel_rightMouseUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1813 OS.class_addMethod(cls, OS.sel_otherMouseDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1814 OS.class_addMethod(cls, OS.sel_otherMouseUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1815 OS.class_addMethod(cls, OS.sel_mouseDragged_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1816 OS.class_addMethod(cls, OS.sel_mouseMoved_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1817 OS.class_addMethod(cls, OS.sel_mouseEntered_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1818 OS.class_addMethod(cls, OS.sel_mouseExited_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1819 OS.class_addMethod(cls, OS.sel_menuForEvent_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1820 OS.class_addMethod(cls, OS.sel_resignFirstResponder, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1821 OS.class_addMethod(cls, OS.sel_becomeFirstResponder, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1822 OS.class_addMethod(cls, OS.sel_keyDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1823 OS.class_addMethod(cls, OS.sel_keyUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1824 OS.class_addMethod(cls, OS.sel_flagsChanged_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1825 OS.class_addMethod(cls, OS.sel_drawRect_, drawRectProc, "@:{NSRect}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1826 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1827 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1828 void addFrameMethods(objc.Class cls, objc.IMP setFrameOriginProc, objc.IMP setFrameSizeProc) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1829 OS.class_addMethod(cls, OS.sel_setFrameOrigin_, setFrameOriginProc, "@:{NSPoint}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1830 OS.class_addMethod(cls, OS.sel_setFrameSize_, setFrameSizeProc, "@:{NSSize}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1831 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
1832 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1833 void addAccessibilityMethods(objc.Class cls, objc.IMP proc2, objc.IMP proc3, objc.IMP proc4, objc.IMP accessibilityHitTestProc) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1834 OS.class_addMethod(cls, OS.sel_accessibilityActionNames, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1835 OS.class_addMethod(cls, OS.sel_accessibilityAttributeNames, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1836 OS.class_addMethod(cls, OS.sel_accessibilityParameterizedAttributeNames, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1837 OS.class_addMethod(cls, OS.sel_accessibilityFocusedUIElement, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1838 OS.class_addMethod(cls, OS.sel_accessibilityIsIgnored, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1839 OS.class_addMethod(cls, OS.sel_accessibilityAttributeValue_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1840 OS.class_addMethod(cls, OS.sel_accessibilityIsAttributeSettable_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1841 OS.class_addMethod(cls, OS.sel_accessibilityHitTest_, accessibilityHitTestProc, "@:{NSPoint}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1842 OS.class_addMethod(cls, OS.sel_accessibilityAttributeValue_forParameter_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1843 OS.class_addMethod(cls, OS.sel_accessibilityPerformAction_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1844 OS.class_addMethod(cls, OS.sel_accessibilityActionDescription_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1845 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1846 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1847 objc.Class registerCellSubclass(objc.Class cellClass, int size, int align_, String types) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1848 String cellClassName = OS.class_getName(cellClass); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1849 objc.Class cls = OS.objc_allocateClassPair(cellClass, "SWT" ~ cellClassName, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1850 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1851 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1852 return cls; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1853 } |
45 | 1854 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1855 void initClasses () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1856 if (OS.objc_lookUpClass ("SWTView") !is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1857 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1858 objc.IMP dialogProc3 = cast(objc.IMP) &dialogProc; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1859 objc.IMP proc3 = cast(objc.IMP) &windowDelegateProc3; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1860 objc.IMP proc2 = cast(objc.IMP) &windowDelegateProc2; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1861 objc.IMP proc4 = cast(objc.IMP) &windowDelegateProc4; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1862 objc.IMP proc5 = cast(objc.IMP) &windowDelegateProc5; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1863 objc.IMP proc6 = cast(objc.IMP) &windowDelegateProc6; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1864 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1865 objc.IMP drawRectProc = OS.drawRect_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1866 objc.IMP drawInteriorWithFrameInViewProc = OS.drawInteriorWithFrame_inView_CALLBACK (proc4); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1867 objc.IMP setFrameOriginProc = OS.setFrameOrigin_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1868 objc.IMP setFrameSizeProc = OS.setFrameSize_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1869 objc.IMP hitTestProc = OS.hitTest_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1870 objc.IMP markedRangeProc = OS.markedRange_CALLBACK(proc2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1871 objc.IMP selectedRangeProc = OS.selectedRange_CALLBACK(proc2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1872 objc.IMP highlightSelectionInClipRectProc = OS.highlightSelectionInClipRect_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1873 objc.IMP setMarkedText_selectedRangeProc = OS.setMarkedText_selectedRange_CALLBACK(proc4); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1874 objc.IMP attributedSubstringFromRangeProc = OS.attributedSubstringFromRange_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1875 objc.IMP characterIndexForPointProc = OS.characterIndexForPoint_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1876 objc.IMP firstRectForCharacterRangeProc = OS.firstRectForCharacterRange_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1877 objc.IMP textWillChangeSelectionProc = OS.textView_willChangeSelectionFromCharacterRange_toCharacterRange_CALLBACK(proc5); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1878 objc.IMP accessibilityHitTestProc = OS.accessibilityHitTest_CALLBACK(proc3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1879 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1880 String types = "*"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1881 size_t size = C.PTR_SIZEOF, align_ = C.PTR_SIZEOF is 4 ? 2 : 3; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1882 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1883 String className = "SWTWindowDelegate"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1884 objc.Class cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSObject, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1885 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1886 OS.class_addMethod(cls, OS.sel_windowDidResize_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1887 OS.class_addMethod(cls, OS.sel_windowDidMove_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1888 OS.class_addMethod(cls, OS.sel_windowShouldClose_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1889 OS.class_addMethod(cls, OS.sel_windowWillClose_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1890 OS.class_addMethod(cls, OS.sel_windowDidResignKey_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1891 OS.class_addMethod(cls, OS.sel_windowDidBecomeKey_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1892 OS.class_addMethod(cls, OS.sel_timerProc_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1893 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1894 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1895 className = "SWTPanelDelegate"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1896 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSObject, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1897 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1898 OS.class_addMethod(cls, OS.sel_windowWillClose_, dialogProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1899 OS.class_addMethod(cls, OS.sel_changeColor_, dialogProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1900 OS.class_addMethod(cls, OS.sel_changeFont_, dialogProc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1901 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1902 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1903 className = "SWTMenu"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1904 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSMenu, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1905 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1906 OS.class_addMethod(cls, OS.sel_menuWillOpen_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1907 OS.class_addMethod(cls, OS.sel_menuDidClose_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1908 OS.class_addMethod(cls, OS.sel_menu_willHighlightItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1909 OS.class_addMethod(cls, OS.sel_menuNeedsUpdate_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1910 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1911 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1912 className = "SWTView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1913 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1914 OS.class_addProtocol(cls, OS.objc_getProtocol("NSTextInput")); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1915 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1916 OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1917 OS.class_addMethod(cls, OS.sel_acceptsFirstResponder, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1918 OS.class_addMethod(cls, OS.sel_isOpaque, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1919 OS.class_addMethod(cls, OS.sel_hitTest_, hitTestProc, "@:{NSPoint}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1920 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1921 //NSTextInput protocol |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1922 OS.class_addMethod(cls, OS.sel_hasMarkedText, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1923 OS.class_addMethod(cls, OS.sel_markedRange, markedRangeProc, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1924 OS.class_addMethod(cls, OS.sel_selectedRange, selectedRangeProc, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1925 OS.class_addMethod(cls, OS.sel_setMarkedText_selectedRange_, setMarkedText_selectedRangeProc, "@:@{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1926 OS.class_addMethod(cls, OS.sel_unmarkText, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1927 OS.class_addMethod(cls, OS.sel_validAttributesForMarkedText, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1928 OS.class_addMethod(cls, OS.sel_attributedSubstringFromRange_, attributedSubstringFromRangeProc, "@:{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1929 OS.class_addMethod(cls, OS.sel_insertText_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1930 OS.class_addMethod(cls, OS.sel_characterIndexForPoint_, characterIndexForPointProc, "@:{NSPoint}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1931 OS.class_addMethod(cls, OS.sel_firstRectForCharacterRange_, firstRectForCharacterRangeProc, "@:{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1932 OS.class_addMethod(cls, OS.sel_doCommandBySelector_, proc3, "@::"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1933 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1934 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1935 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1936 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1937 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1938 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1939 className = "SWTScrollView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1940 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSScrollView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1941 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1942 OS.class_addMethod(cls, OS.sel_sendVerticalSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1943 OS.class_addMethod(cls, OS.sel_sendHorizontalSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1944 OS.class_addMethod(cls, OS.sel_pageDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1945 OS.class_addMethod(cls, OS.sel_pageUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1946 OS.class_addMethod(cls, OS.sel_reflectScrolledClipView_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1947 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1948 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1949 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1950 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1951 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1952 className = "SWTButton"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1953 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSButton, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1954 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1955 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1956 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1957 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1958 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1959 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1960 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1961 cls = registerCellSubclass(NSButton.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1962 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1963 NSButton.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1964 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1965 className = "SWTTableView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1966 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTableView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1967 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1968 OS.class_addMethod(cls, OS.sel_highlightSelectionInClipRect_, highlightSelectionInClipRectProc, "@:{NSRect}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1969 OS.class_addMethod(cls, OS.sel_sendDoubleSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1970 OS.class_addMethod(cls, OS.sel_numberOfRowsInTableView_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1971 OS.class_addMethod(cls, OS.sel_tableView_objectValueForTableColumn_row_, proc5, "@:@:@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1972 OS.class_addMethod(cls, OS.sel_tableView_shouldEditTableColumn_row_, proc5, "@:@:@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1973 OS.class_addMethod(cls, OS.sel_tableViewSelectionDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1974 static if ((void*).sizeof > int.sizeof) /* 64bit target*/ OS.class_addMethod(cls, OS.sel_tableView_willDisplayCell_forTableColumn_row_, proc6, "@:@@@q"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1975 else OS.class_addMethod(cls, OS.sel_tableView_willDisplayCell_forTableColumn_row_, proc6, "@:@@@i"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1976 static if ((void*).sizeof > int.sizeof) /* 64bit target*/ OS.class_addMethod(cls, OS.sel_tableView_setObjectValue_forTableColumn_row_, proc6, "@:@@@q"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1977 else OS.class_addMethod(cls, OS.sel_tableView_setObjectValue_forTableColumn_row_, proc6, "@:@@@i"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1978 OS.class_addMethod(cls, OS.sel_tableViewColumnDidMove_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1979 OS.class_addMethod(cls, OS.sel_tableViewColumnDidResize_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1980 OS.class_addMethod(cls, OS.sel_tableView_didClickTableColumn_, proc4, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1981 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1982 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1983 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1984 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1985 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1986 className = "SWTTableHeaderCell"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1987 cls = OS.objc_allocateClassPair (cast(objc.Class) OS.class_NSTableHeaderCell, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1988 OS.class_addIvar (cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1989 OS.class_addMethod (cls, OS.sel_drawInteriorWithFrame_inView_, drawInteriorWithFrameInViewProc, "@:{NSRect}@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1990 OS.objc_registerClassPair (cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1991 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1992 className = "SWTBrowserCell"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1993 cls = OS.objc_allocateClassPair (cast(objc.Class) OS.class_NSBrowserCell, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1994 OS.class_addIvar (cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1995 OS.class_addMethod (cls, OS.sel_drawInteriorWithFrame_inView_, drawInteriorWithFrameInViewProc, "@:{NSRect}@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1996 OS.objc_registerClassPair (cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1997 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1998 className = "SWTTableHeaderView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
1999 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTableHeaderView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2000 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2001 OS.class_addMethod(cls, OS.sel_mouseDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2002 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2003 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2004 className = "SWTOutlineView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2005 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSOutlineView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2006 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2007 OS.class_addMethod(cls, OS.sel_highlightSelectionInClipRect_, highlightSelectionInClipRectProc, "@:{NSRect}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2008 OS.class_addMethod(cls, OS.sel_sendDoubleSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2009 OS.class_addMethod(cls, OS.sel_outlineViewSelectionDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2010 OS.class_addMethod(cls, OS.sel_outlineViewItemDidExpand_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2011 OS.class_addMethod(cls, OS.sel_outlineView_shouldCollapseItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2012 OS.class_addMethod(cls, OS.sel_outlineView_shouldExpandItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2013 OS.class_addMethod(cls, OS.sel_outlineView_child_ofItem_, proc5, "@:@i@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2014 OS.class_addMethod(cls, OS.sel_outlineView_isItemExpandable_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2015 OS.class_addMethod(cls, OS.sel_outlineView_numberOfChildrenOfItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2016 OS.class_addMethod(cls, OS.sel_outlineView_objectValueForTableColumn_byItem_, proc5, "@:@@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2017 OS.class_addMethod(cls, OS.sel_outlineView_willDisplayCell_forTableColumn_item_, proc6, "@:@@@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2018 OS.class_addMethod(cls, OS.sel_outlineView_setObjectValue_forTableColumn_byItem_, proc6, "@:@@@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2019 OS.class_addMethod(cls, OS.sel_outlineViewColumnDidMove_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2020 OS.class_addMethod(cls, OS.sel_outlineViewColumnDidResize_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2021 OS.class_addMethod(cls, OS.sel_outlineView_didClickTableColumn_, proc4, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2022 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2023 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2024 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2025 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2026 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2027 className = "SWTTreeItem"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2028 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSObject, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2029 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2030 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2031 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2032 className = "SWTTabView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2033 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTabView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2034 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2035 OS.class_addMethod(cls, OS.sel_tabView_willSelectTabViewItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2036 OS.class_addMethod(cls, OS.sel_tabView_didSelectTabViewItem_, proc4, "@:@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2037 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2038 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2039 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2040 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2041 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2042 className = "SWTBox"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2043 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSBox, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2044 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2045 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2046 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2047 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2048 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2049 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2050 className = "SWTProgressIndicator"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2051 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSProgressIndicator, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2052 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2053 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2054 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2055 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2056 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2057 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2058 className = "SWTSlider"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2059 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSSlider, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2060 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2061 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2062 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2063 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2064 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2065 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2066 cls = registerCellSubclass(NSSlider.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2067 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2068 NSSlider.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2069 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2070 className = "SWTPopUpButton"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2071 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSPopUpButton, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2072 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2073 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2074 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2075 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2076 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2077 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2078 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2079 cls = registerCellSubclass(NSPopUpButton.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2080 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2081 NSPopUpButton.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2082 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2083 className = "SWTComboBox"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2084 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSComboBox, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2085 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2086 OS.class_addMethod(cls, OS.sel_comboBoxSelectionDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2087 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2088 OS.class_addMethod(cls, OS.sel_textDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2089 OS.class_addMethod(cls, OS.sel_textViewDidChangeSelection_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2090 OS.class_addMethod(cls, OS.sel_textView_willChangeSelectionFromCharacterRange_toCharacterRange_, textWillChangeSelectionProc, "@:@{NSRange}{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2091 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2092 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2093 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2094 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2095 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2096 cls = registerCellSubclass(NSComboBox.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2097 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2098 NSComboBox.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2099 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2100 className = "SWTDatePicker"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2101 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSDatePicker, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2102 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2103 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2104 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2105 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2106 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2107 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2108 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2109 className = "SWTImageView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2110 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSImageView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2111 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2112 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2113 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2114 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2115 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2116 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2117 cls = registerCellSubclass(NSImageView.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2118 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2119 NSImageView.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2120 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2121 className = "SWTStepper"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2122 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSStepper, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2123 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2124 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2125 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2126 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2127 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2128 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2129 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2130 cls = registerCellSubclass(NSStepper.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2131 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2132 NSStepper.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2133 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2134 className = "SWTScroller"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2135 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSScroller, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2136 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2137 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2138 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2139 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2140 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2141 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2142 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2143 className = "SWTMenuItem"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2144 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSMenuItem, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2145 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2146 OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2147 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2148 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2149 className = "SWTTextView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2150 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTextView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2151 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2152 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2153 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2154 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2155 OS.class_addMethod(cls, OS.sel_insertText_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2156 OS.class_addMethod(cls, OS.sel_doCommandBySelector_, proc3, "@::"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2157 OS.class_addMethod(cls, OS.sel_textDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2158 OS.class_addMethod(cls, OS.sel_textView_clickedOnLink_atIndex_, proc5, "@:@@@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2159 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2160 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2161 className = "SWTEditorView"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2162 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTextView, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2163 OS.class_addMethod(cls, OS.sel_keyDown_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2164 OS.class_addMethod(cls, OS.sel_keyUp_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2165 OS.class_addMethod(cls, OS.sel_insertText_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2166 OS.class_addMethod(cls, OS.sel_doCommandBySelector_, proc3, "@::"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2167 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2168 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2169 className = "SWTTextField"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2170 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSTextField, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2171 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2172 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2173 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2174 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2175 OS.class_addMethod(cls, OS.sel_textDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2176 OS.class_addMethod(cls, OS.sel_textViewDidChangeSelection_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2177 OS.class_addMethod(cls, OS.sel_textView_willChangeSelectionFromCharacterRange_toCharacterRange_, textWillChangeSelectionProc, "@:@{NSRange}{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2178 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2179 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2180 cls = registerCellSubclass(NSTextField.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2181 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2182 NSTextField.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2183 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2184 className = "SWTSearchField"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2185 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSSearchField, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2186 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2187 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2188 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2189 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2190 OS.class_addMethod(cls, OS.sel_textDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2191 OS.class_addMethod(cls, OS.sel_textViewDidChangeSelection_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2192 OS.class_addMethod(cls, OS.sel_textView_willChangeSelectionFromCharacterRange_toCharacterRange_, textWillChangeSelectionProc, "@:@{NSRange}{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2193 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2194 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2195 cls = registerCellSubclass(NSSearchField.cellClass(), size, align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2196 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2197 NSSearchField.setCellClass(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2198 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2199 className = "SWTSecureTextField"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2200 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSSecureTextField, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2201 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2202 addEventMethods(cls, proc2, proc3, drawRectProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2203 addFrameMethods(cls, setFrameOriginProc, setFrameSizeProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2204 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2205 OS.class_addMethod(cls, OS.sel_textDidChange_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2206 OS.class_addMethod(cls, OS.sel_textViewDidChangeSelection_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2207 OS.class_addMethod(cls, OS.sel_textView_willChangeSelectionFromCharacterRange_toCharacterRange_, textWillChangeSelectionProc, "@:@{NSRange}{NSRange}"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2208 OS.objc_registerClassPair(cls); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2209 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2210 // Don't subclass NSSecureTextFieldCell -- you'll get an NSException from [NSSecureTextField setCellClass:]! |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2211 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2212 className = "SWTWindow"; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2213 cls = OS.objc_allocateClassPair(cast(objc.Class) OS.class_NSWindow, className, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2214 OS.class_addIvar(cls, SWT_OBJECT, size, cast(byte)align_, types); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2215 OS.class_addMethod(cls, OS.sel_sendEvent_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2216 OS.class_addMethod(cls, OS.sel_helpRequested_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2217 OS.class_addMethod(cls, OS.sel_canBecomeKeyWindow, proc2, "@:"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2218 OS.class_addMethod(cls, OS.sel_makeFirstResponder_, proc3, "@:@"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2219 addAccessibilityMethods(cls, proc2, proc3, proc4, accessibilityHitTestProc); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2220 OS.objc_registerClassPair(cls); |
45 | 2221 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2222 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2223 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2224 * Invokes platform specific functionality to allocate a new GC handle. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2225 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2226 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2227 * API for <code>Display</code>. It is marked public only so that it |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2228 * can be shared within the packages provided by DWT. It is not |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2229 * available on all platforms, and should never be called from |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2230 * application code. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2231 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2232 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2233 * @param data the platform specific GC data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2234 * @return the platform specific GC handle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2235 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2236 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2237 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2238 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2239 * @exception DWTError <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2240 * <li>ERROR_NO_HANDLES if a handle could not be obtained for gc creation</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2241 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2242 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2243 public objc.id internal_new_GC (GCData data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2244 if (isDisposed()) DWT.error(DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2245 if (screenWindow is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2246 NSWindow window = cast(NSWindow) (new NSWindow ()).alloc (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2247 NSRect rect = NSRect(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2248 window = window.initWithContentRect(rect, OS.NSBorderlessWindowMask, OS.NSBackingStoreBuffered, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2249 window.setReleasedWhenClosed(false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2250 screenWindow = window; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2251 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2252 NSGraphicsContext context = screenWindow.graphicsContext(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2253 // NSAffineTransform transform = NSAffineTransform.transform(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2254 // NSSize size = handle.size(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2255 // transform.translateXBy(0, size.height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2256 // transform.scaleXBy(1, -1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2257 // transform.set(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2258 if (data !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2259 int mask = DWT.LEFT_TO_RIGHT | DWT.RIGHT_TO_LEFT; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2260 if ((data.style & mask) is 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2261 data.style |= DWT.LEFT_TO_RIGHT; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2262 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2263 data.device = this; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2264 data.background = getSystemColor(DWT.COLOR_WHITE).handle; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2265 data.foreground = getSystemColor(DWT.COLOR_BLACK).handle; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2266 data.font = getSystemFont(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2267 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2268 return context.id; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2269 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2270 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2271 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2272 * Invokes platform specific functionality to dispose a GC handle. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2273 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2274 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2275 * API for <code>Display</code>. It is marked public only so that it |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2276 * can be shared within the packages provided by DWT. It is not |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2277 * available on all platforms, and should never be called from |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2278 * application code. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2279 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2280 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2281 * @param hDC the platform specific GC handle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2282 * @param data the platform specific GC data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2283 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2284 public void internal_dispose_GC (objc.id context, GCData data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2285 if (isDisposed()) DWT.error(DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2286 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2287 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2288 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2289 static bool isValidClass (ClassInfo clazz) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2290 String name = clazz.name; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2291 int index = name.lastIndexOf ('.'); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2292 name = name[0 .. index]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2293 index = name.lastIndexOf ('.'); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2294 return name.substring (0, index + 1).equals (PACKAGE_PREFIX); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2295 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2296 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2297 bool isValidThread () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2298 return thread is Thread.getThis (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2299 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2300 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2301 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2302 * Generate a low level system event. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2303 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2304 * <code>post</code> is used to generate low level keyboard |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2305 * and mouse events. The intent is to enable automated UI |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2306 * testing by simulating the input from the user. Most |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2307 * DWT applications should never need to call this method. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2308 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2309 * Note that this operation can fail when the operating system |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2310 * fails to generate the event for any reason. For example, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2311 * this can happen when there is no such key or mouse button |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2312 * or when the system event queue is full. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2313 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2314 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2315 * <b>Event Types:</b> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2316 * <p>KeyDown, KeyUp |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2317 * <p>The following fields in the <code>Event</code> apply: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2318 * <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2319 * <li>(in) type KeyDown or KeyUp</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2320 * <p> Either one of: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2321 * <li>(in) character a character that corresponds to a keyboard key</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2322 * <li>(in) keyCode the key code of the key that was typed, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2323 * as defined by the key code constants in class <code>DWT</code></li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2324 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2325 * <p>MouseDown, MouseUp</p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2326 * <p>The following fields in the <code>Event</code> apply: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2327 * <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2328 * <li>(in) type MouseDown or MouseUp |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2329 * <li>(in) button the button that is pressed or released |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2330 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2331 * <p>MouseMove</p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2332 * <p>The following fields in the <code>Event</code> apply: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2333 * <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2334 * <li>(in) type MouseMove |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2335 * <li>(in) x the x coordinate to move the mouse pointer to in screen coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2336 * <li>(in) y the y coordinate to move the mouse pointer to in screen coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2337 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2338 * </dl> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2339 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2340 * @param event the event to be generated |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2341 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2342 * @return true if the event was generated or false otherwise |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2343 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2344 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2345 * <li>ERROR_NULL_ARGUMENT - if the event is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2346 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2347 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2348 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2349 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2350 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2351 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2352 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2353 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2354 public bool post(Event event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2355 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2356 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2357 if (event is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2358 // int type = event.type; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2359 // switch (type) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2360 // case DWT.KeyDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2361 // case DWT.KeyUp: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2362 // int vKey = Display.untranslateKey (event.keyCode); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2363 // if (vKey !is 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2364 // return OS.CGPostKeyboardEvent (0, vKey, type is DWT.KeyDown) is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2365 // } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2366 // vKey = -1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2367 // int kchrPtr = OS.GetScriptManagerVariable (cast(short) OS.smKCHRCache); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2368 // int key = -1; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2369 // int [] state = new int [1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2370 // int [] encoding = new int [1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2371 // short keyScript = cast(short) OS.GetScriptManagerVariable (cast(short) OS.smKeyScript); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2372 // short regionCode = cast(short) OS.GetScriptManagerVariable (cast(short) OS.smRegionCode); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2373 // if (OS.UpgradeScriptInfoToTextEncoding (keyScript, cast(short) OS.kTextLanguageDontCare, regionCode, null, encoding) is OS.paramErr) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2374 // if (OS.UpgradeScriptInfoToTextEncoding (keyScript, cast(short) OS.kTextLanguageDontCare, cast(short) OS.kTextRegionDontCare, null, encoding) is OS.paramErr) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2375 // encoding [0] = OS.kTextEncodingMacRoman; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2376 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2377 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2378 // int [] encodingInfo = new int [1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2379 // OS.CreateUnicodeToTextInfoByEncoding (encoding [0], encodingInfo); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2380 // if (encodingInfo [0] !is 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2381 // char [] input = {event.character}; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2382 // byte [] buffer = new byte [2]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2383 // OS.ConvertFromUnicodeToPString (encodingInfo [0], 2, input, buffer); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2384 // OS.DisposeUnicodeToTextInfo (encodingInfo); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2385 // key = buffer [1] & 0x7f; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2386 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2387 // if (key is -1) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2388 // for (int i = 0 ; i <= 0x7F ; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2389 // int result1 = OS.KeyTranslate (kchrPtr, cast(short) (i | 512), state); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2390 // int result2 = OS.KeyTranslate (kchrPtr, cast(short) i, state); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2391 // if ((result1 & 0x7f) is key || (result2 & 0x7f) is key) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2392 // vKey = i; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2393 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2394 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2395 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2396 // if (vKey is -1) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2397 // return OS.CGPostKeyboardEvent (key, vKey, type is DWT.KeyDown) is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2398 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2399 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2400 // case DWT.MouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2401 // case DWT.MouseMove: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2402 // case DWT.MouseUp: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2403 // CGPoint mouseCursorPosition = new CGPoint (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2404 // int chord = OS.GetCurrentEventButtonState (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2405 // if (type is DWT.MouseMove) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2406 // mouseCursorPosition.x = event.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2407 // mouseCursorPosition.y = event.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2408 // return OS.CGPostMouseEvent (mouseCursorPosition, true, 5, (chord & 0x1) !is 0, (chord & 0x2) !is 0, (chord & 0x4) !is 0, (chord & 0x8) !is 0, (chord & 0x10) !is 0) is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2409 // } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2410 // int button = event.button; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2411 // if (button < 1 || button > 5) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2412 // bool button1 = false, button2 = false, button3 = false, button4 = false, button5 = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2413 // switch (button) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2414 // case 1: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2415 // button1 = type is DWT.MouseDown; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2416 // button2 = (chord & 0x4) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2417 // button3 = (chord & 0x2) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2418 // button4 = (chord & 0x8) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2419 // button5 = (chord & 0x10) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2420 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2421 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2422 // case 2: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2423 // button1 = (chord & 0x1) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2424 // button2 = type is DWT.MouseDown; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2425 // button3 = (chord & 0x2) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2426 // button4 = (chord & 0x8) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2427 // button5 = (chord & 0x10) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2428 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2429 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2430 // case 3: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2431 // button1 = (chord & 0x1) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2432 // button2 = (chord & 0x4) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2433 // button3 = type is DWT.MouseDown; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2434 // button4 = (chord & 0x8) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2435 // button5 = (chord & 0x10) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2436 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2437 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2438 // case 4: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2439 // button1 = (chord & 0x1) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2440 // button2 = (chord & 0x4) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2441 // button3 = (chord & 0x2) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2442 // button4 = type is DWT.MouseDown; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2443 // button5 = (chord & 0x10) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2444 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2445 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2446 // case 5: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2447 // button1 = (chord & 0x1) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2448 // button2 = (chord & 0x4) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2449 // button3 = (chord & 0x2) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2450 // button4 = (chord & 0x8) !is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2451 // button5 = type is DWT.MouseDown; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2452 // break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2453 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2454 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2455 // dwt.internal.carbon.Point pt = new dwt.internal.carbon.Point (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2456 // OS.GetGlobalMouse (pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2457 // mouseCursorPosition.x = pt.h; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2458 // mouseCursorPosition.y = pt.v; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2459 // return OS.CGPostMouseEvent (mouseCursorPosition, true, 5, button1, button3, button2, button4, button5) is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2460 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2461 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2462 // case DWT.MouseWheel: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2463 // return OS.CGPostScrollWheelEvent (1, event.count) is 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2464 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2465 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2466 return false; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2467 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2468 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2469 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2470 void postEvent (Event event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2471 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2472 * Place the event at the end of the event queue. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2473 * This code is always called in the Display's |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2474 * thread so it must be re-enterant but does not |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2475 * need to be synchronized. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2476 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2477 if (eventQueue is null) eventQueue = new Event [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2478 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2479 int length = eventQueue.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2480 while (index < length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2481 if (eventQueue [index] is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2482 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2483 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2484 if (index is length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2485 Event [] newQueue = new Event [length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2486 System.arraycopy (eventQueue, 0, newQueue, 0, length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2487 eventQueue = newQueue; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2488 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2489 eventQueue [index] = event; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2490 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2491 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2492 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2493 * Maps a point from one coordinate system to another. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2494 * When the control is null, coordinates are mapped to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2495 * the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2496 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2497 * NOTE: On right-to-left platforms where the coordinate |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2498 * systems are mirrored, special care needs to be taken |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2499 * when mapping coordinates from one control to another |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2500 * to ensure the result is correctly mirrored. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2501 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2502 * Mapping a point that is the origin of a rectangle and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2503 * then adding the width and height is not equivalent to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2504 * mapping the rectangle. When one control is mirrored |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2505 * and the other is not, adding the width and height to a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2506 * point that was mapped causes the rectangle to extend |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2507 * in the wrong direction. Mapping the entire rectangle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2508 * instead of just one point causes both the origin and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2509 * the corner of the rectangle to be mapped. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2510 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2511 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2512 * @param from the source <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2513 * @param to the destination <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2514 * @param point to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2515 * @return point with mapped coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2516 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2517 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2518 * <li>ERROR_NULL_ARGUMENT - if the point is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2519 * <li>ERROR_INVALID_ARGUMENT - if the Control from or the Control to have been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2520 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2521 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2522 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2523 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2524 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2525 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2526 * @since 2.1.2 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2527 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2528 public Point map (Control from, Control to, Point point) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2529 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2530 if (point is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2531 return map (from, to, point.x, point.y); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2532 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2533 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2534 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2535 * Maps a point from one coordinate system to another. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2536 * When the control is null, coordinates are mapped to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2537 * the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2538 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2539 * NOTE: On right-to-left platforms where the coordinate |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2540 * systems are mirrored, special care needs to be taken |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2541 * when mapping coordinates from one control to another |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2542 * to ensure the result is correctly mirrored. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2543 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2544 * Mapping a point that is the origin of a rectangle and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2545 * then adding the width and height is not equivalent to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2546 * mapping the rectangle. When one control is mirrored |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2547 * and the other is not, adding the width and height to a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2548 * point that was mapped causes the rectangle to extend |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2549 * in the wrong direction. Mapping the entire rectangle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2550 * instead of just one point causes both the origin and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2551 * the corner of the rectangle to be mapped. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2552 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2553 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2554 * @param from the source <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2555 * @param to the destination <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2556 * @param x coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2557 * @param y coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2558 * @return point with mapped coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2559 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2560 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2561 * <li>ERROR_INVALID_ARGUMENT - if the Control from or the Control to have been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2562 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2563 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2564 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2565 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2566 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2567 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2568 * @since 2.1.2 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2569 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2570 public Point map (Control from, Control to, int x, int y) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2571 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2572 if (from !is null && from.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2573 if (to !is null && to.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2574 Point point = new Point (x, y); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2575 if (from is to) return point; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2576 NSPoint pt = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2577 pt.x = x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2578 pt.y = y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2579 NSWindow fromWindow = from !is null ? from.view.window() : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2580 NSWindow toWindow = to !is null ? to.view.window() : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2581 if (toWindow !is null && fromWindow !is null && toWindow.id is fromWindow.id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2582 pt = from.view.convertPoint_toView_(pt, to.view); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2583 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2584 NSRect primaryFrame = getPrimaryFrame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2585 if (from !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2586 NSView view = from.contentView (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2587 pt = view.convertPoint_toView_(pt, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2588 pt = fromWindow.convertBaseToScreen(pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2589 pt.y = primaryFrame.height - pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2590 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2591 if (to !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2592 NSView view = to.contentView (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2593 pt.y = primaryFrame.height - pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2594 pt = toWindow.convertScreenToBase(pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2595 pt = view.convertPoint_fromView_(pt, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2596 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2597 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2598 point.x = cast(int)pt.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2599 point.y = cast(int)pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2600 return point; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2601 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2602 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2603 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2604 * Maps a point from one coordinate system to another. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2605 * When the control is null, coordinates are mapped to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2606 * the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2607 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2608 * NOTE: On right-to-left platforms where the coordinate |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2609 * systems are mirrored, special care needs to be taken |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2610 * when mapping coordinates from one control to another |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2611 * to ensure the result is correctly mirrored. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2612 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2613 * Mapping a point that is the origin of a rectangle and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2614 * then adding the width and height is not equivalent to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2615 * mapping the rectangle. When one control is mirrored |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2616 * and the other is not, adding the width and height to a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2617 * point that was mapped causes the rectangle to extend |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2618 * in the wrong direction. Mapping the entire rectangle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2619 * instead of just one point causes both the origin and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2620 * the corner of the rectangle to be mapped. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2621 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2622 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2623 * @param from the source <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2624 * @param to the destination <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2625 * @param rectangle to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2626 * @return rectangle with mapped coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2627 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2628 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2629 * <li>ERROR_NULL_ARGUMENT - if the rectangle is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2630 * <li>ERROR_INVALID_ARGUMENT - if the Control from or the Control to have been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2631 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2632 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2633 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2634 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2635 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2636 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2637 * @since 2.1.2 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2638 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2639 public Rectangle map (Control from, Control to, Rectangle rectangle) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2640 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2641 if (rectangle is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2642 return map (from, to, rectangle.x, rectangle.y, rectangle.width, rectangle.height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2643 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2644 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2645 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2646 * Maps a point from one coordinate system to another. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2647 * When the control is null, coordinates are mapped to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2648 * the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2649 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2650 * NOTE: On right-to-left platforms where the coordinate |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2651 * systems are mirrored, special care needs to be taken |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2652 * when mapping coordinates from one control to another |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2653 * to ensure the result is correctly mirrored. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2654 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2655 * Mapping a point that is the origin of a rectangle and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2656 * then adding the width and height is not equivalent to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2657 * mapping the rectangle. When one control is mirrored |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2658 * and the other is not, adding the width and height to a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2659 * point that was mapped causes the rectangle to extend |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2660 * in the wrong direction. Mapping the entire rectangle |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2661 * instead of just one point causes both the origin and |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2662 * the corner of the rectangle to be mapped. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2663 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2664 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2665 * @param from the source <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2666 * @param to the destination <code>Control</code> or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2667 * @param x coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2668 * @param y coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2669 * @param width coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2670 * @param height coordinates to be mapped |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2671 * @return rectangle with mapped coordinates |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2672 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2673 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2674 * <li>ERROR_INVALID_ARGUMENT - if the Control from or the Control to have been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2675 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2676 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2677 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2678 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2679 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2680 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2681 * @since 2.1.2 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2682 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2683 public Rectangle map (Control from, Control to, int x, int y, int width, int height) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2684 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2685 if (from !is null && from.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2686 if (to !is null && to.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2687 Rectangle rectangle = new Rectangle (x, y, width, height); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2688 if (from is to) return rectangle; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2689 NSPoint pt = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2690 pt.x = x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2691 pt.y = y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2692 NSWindow fromWindow = from !is null ? from.view.window() : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2693 NSWindow toWindow = to !is null ? to.view.window() : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2694 if (toWindow !is null && fromWindow !is null && toWindow.id is fromWindow.id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2695 pt = from.view.convertPoint_toView_(pt, to.view); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2696 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2697 NSRect primaryFrame = getPrimaryFrame(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2698 if (from !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2699 NSView view = from.contentView (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2700 pt = view.convertPoint_toView_(pt, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2701 pt = fromWindow.convertBaseToScreen(pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2702 pt.y = primaryFrame.height - pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2703 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2704 if (to !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2705 NSView view = to.contentView (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2706 pt.y = primaryFrame.height - pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2707 pt = toWindow.convertScreenToBase(pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2708 pt = view.convertPoint_fromView_(pt, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2709 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2710 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2711 rectangle.x = cast(int)pt.x; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2712 rectangle.y = cast(int)pt.y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2713 return rectangle; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2714 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2715 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2716 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2717 * Reads an event from the operating system's event queue, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2718 * dispatches it appropriately, and returns <code>true</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2719 * if there is potentially more work to do, or <code>false</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2720 * if the caller can sleep until another event is placed on |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2721 * the event queue. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2722 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2723 * In addition to checking the system event queue, this method also |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2724 * checks if any inter-thread messages (created by <code>syncExec()</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2725 * or <code>asyncExec()</code>) are waiting to be processed, and if |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2726 * so handles them before returning. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2727 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2728 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2729 * @return <code>false</code> if the caller can sleep upon return from this method |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2730 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2731 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2732 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2733 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2734 * <li>ERROR_FAILED_EXEC - if an exception occurred while running an inter-thread message</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2735 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2736 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2737 * @see #sleep |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2738 * @see #wake |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2739 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2740 public bool readAndDispatch () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2741 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2742 if (loopCounter is 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2743 pool.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2744 pool = cast(NSAutoreleasePool)(new NSAutoreleasePool()).alloc().init(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2745 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2746 loopCounter ++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2747 bool events = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2748 events |= runTimers (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2749 events |= runContexts (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2750 events |= runPopups (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2751 NSEvent event = application.nextEventMatchingMask(0, null, OS.NSDefaultRunLoopMode, true); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2752 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2753 try { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2754 if (event !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2755 events = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2756 application.sendEvent(event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2757 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2758 // NSEvent event = NSEvent.otherEventWithType(OS.NSApplicationDefined, NSPoint(), 0, 0, 0, null, SWT_IDLE_TYPE, 0, 0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2759 // application.postEvent(event, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2760 // idle = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2761 // application.run(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2762 // events |= !idle; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2763 if (events) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2764 runDeferredEvents (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2765 return true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2766 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2767 return runAsyncMessages (false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2768 } finally { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2769 loopCounter --; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2770 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2771 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2772 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2773 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2774 static void register (Display display) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2775 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2776 for (int i=0; i<Displays.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2777 if (Displays [i] is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2778 Displays [i] = display; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2779 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2780 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2781 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2782 Display [] newDisplays = new Display [Displays.length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2783 System.arraycopy (Displays, 0, newDisplays, 0, Displays.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2784 newDisplays [Displays.length] = display; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2785 Displays = newDisplays; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2786 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2787 } |
45 | 2788 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2789 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2790 * Releases any internal resources back to the operating |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2791 * system and clears all fields except the device handle. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2792 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2793 * Disposes all shells which are currently open on the display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2794 * After this method has been invoked, all related related shells |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2795 * will answer <code>true</code> when sent the message |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2796 * <code>isDisposed()</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2797 * </p><p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2798 * When a device is destroyed, resources that were acquired |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2799 * on behalf of the programmer need to be returned to the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2800 * operating system. For example, if the device allocated a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2801 * font to be used as the system font, this font would be |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2802 * freed in <code>release</code>. Also,to assist the garbage |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2803 * collector and minimize the amount of memory that is not |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2804 * reclaimed when the programmer keeps a reference to a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2805 * disposed device, all fields except the handle are zero'd. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2806 * The handle is needed by <code>destroy</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2807 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2808 * This method is called before <code>destroy</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2809 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2810 * @see Device#dispose |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2811 * @see #destroy |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2812 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2813 protected void release () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2814 disposing = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2815 sendEvent (DWT.Dispose, new Event ()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2816 Shell [] shells = getShells (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2817 for (int i=0; i<shells.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2818 Shell shell = shells [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2819 if (!shell.isDisposed ()) shell.dispose (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2820 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2821 if (tray !is null) tray.dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2822 tray = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2823 while (readAndDispatch ()) {} |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2824 if (disposeList !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2825 for (int i=0; i<disposeList.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2826 if (disposeList [i] !is null) disposeList [i].run (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2827 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2828 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2829 disposeList = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2830 synchronizer.releaseSynchronizer (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2831 synchronizer = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2832 releaseDisplay (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2833 super.release (); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2834 } |
45 | 2835 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2836 void releaseDisplay () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2837 /* Release the System Images */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2838 if (errorImage !is null) errorImage.dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2839 if (infoImage !is null) infoImage.dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2840 if (warningImage !is null) warningImage.dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2841 errorImage = infoImage = warningImage = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2842 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2843 currentCaret = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2844 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2845 /* Release Timers */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2846 if (hoverTimer !is null) timerExec(-1, hoverTimer); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2847 hoverTimer = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2848 if (caretTimer !is null) timerExec(-1, caretTimer); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2849 caretTimer = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2850 if (nsTimers !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2851 for (int i=0; i<nsTimers.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2852 if (nsTimers [i] !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2853 nsTimers [i].invalidate(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2854 nsTimers [i].release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2855 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2856 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2857 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2858 nsTimers = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2859 if (timerDelegate !is null) timerDelegate.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2860 timerDelegate = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2861 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2862 /* Release the System Cursors */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2863 for (int i = 0; i < cursors.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2864 if (cursors [i] !is null) cursors [i].dispose (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2865 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2866 cursors = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2867 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2868 /* Release Dock image */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2869 if (dockImage !is null) dockImage.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2870 dockImage = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2871 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2872 if (screenWindow !is null) screenWindow.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2873 screenWindow = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2874 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2875 modalShells = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2876 menuBar = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2877 menus = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2878 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2879 if (markedAttributes !is null) markedAttributes.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2880 markedAttributes = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2881 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2882 /* The release pool needs to be released before the call backs. */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2883 if (pool !is null) pool.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2884 pool = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2885 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2886 if (application !is null && applicationClass !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2887 OS.object_setClass (application.id, applicationClass); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2888 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2889 application = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2890 applicationClass = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2891 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2892 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2893 void removeContext (NSGraphicsContext context) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2894 if (contexts is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2895 int count = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2896 for (int i = 0; i < contexts.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2897 if (contexts[i] !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2898 if (contexts [i].id is context.id) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2899 contexts[i] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2900 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2901 count++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2902 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2903 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2904 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2905 if (count is 0) contexts = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2906 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2907 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2908 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2909 * Removes the listener from the collection of listeners who will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2910 * be notified when an event of the given type occurs anywhere in |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2911 * a widget. The event type is one of the event constants defined |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2912 * in class <code>DWT</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2913 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2914 * @param eventType the type of event to listen for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2915 * @param listener the listener which should no longer be notified when the event occurs |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2916 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2917 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2918 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2919 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2920 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2921 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2922 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2923 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2924 * @see Listener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2925 * @see DWT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2926 * @see #addFilter |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2927 * @see #addListener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2928 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2929 * @since 3.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2930 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2931 public void removeFilter (int eventType, Listener listener) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2932 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2933 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2934 if (filterTable is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2935 filterTable.unhook (eventType, listener); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2936 if (filterTable.size () is 0) filterTable = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2937 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2938 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2939 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2940 * Removes the listener from the collection of listeners who will |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2941 * be notified when an event of the given type occurs. The event type |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2942 * is one of the event constants defined in class <code>DWT</code>. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2943 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2944 * @param eventType the type of event to listen for |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2945 * @param listener the listener which should no longer be notified |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2946 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2947 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2948 * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2949 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2950 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2951 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2952 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2953 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2954 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2955 * @see Listener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2956 * @see DWT |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2957 * @see #addListener |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2958 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2959 * @since 2.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2960 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2961 public void removeListener (int eventType, Listener listener) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2962 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2963 if (listener is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2964 if (eventTable is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2965 eventTable.unhook (eventType, listener); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2966 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2967 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2968 Widget removeWidget (NSObject view) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2969 if (view is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2970 void* jniRef; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2971 OS.object_getInstanceVariable(view.id, SWT_OBJECT, jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2972 if (jniRef is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2973 Widget widget = cast(Widget)OS.JNIGetObject(jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2974 OS.object_setInstanceVariable(view.id, SWT_OBJECT, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2975 return widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2976 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2977 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2978 void removeMenu (Menu menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2979 if (menus is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2980 for (int i = 0; i < menus.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2981 if (menus [i] is menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2982 menus[i] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2983 break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2984 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2985 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2986 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2987 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2988 void removePopup (Menu menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2989 if (popups is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2990 for (int i=0; i<popups.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2991 if (popups [i] is menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2992 popups [i] = null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2993 return; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2994 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
2995 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2996 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2997 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2998 bool runAsyncMessages (bool all) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
2999 return synchronizer.runAsyncMessages (all); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3000 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3001 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3002 bool runContexts () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3003 if (contexts !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3004 for (int i = 0; i < contexts.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3005 if (contexts[i] !is null) contexts[i].flushGraphics(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3006 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3007 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3008 return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3009 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3010 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3011 bool runDeferredEvents () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3012 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3013 * Run deferred events. This code is always |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3014 * called in the Display's thread so it must |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3015 * be re-enterant need not be synchronized. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3016 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3017 while (eventQueue !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3018 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3019 /* Take an event off the queue */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3020 Event event = eventQueue [0]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3021 if (event is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3022 int length_ = eventQueue.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3023 System.arraycopy (eventQueue, 1, eventQueue, 0, --length_); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3024 eventQueue [length_] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3025 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3026 /* Run the event */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3027 Widget widget = event.widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3028 if (widget !is null && !widget.isDisposed ()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3029 Widget item = event.item; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3030 if (item is null || !item.isDisposed ()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3031 widget.notifyListeners (event.type, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3032 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3033 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3034 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3035 /* |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3036 * At this point, the event queue could |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3037 * be null due to a recursive invokation |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3038 * when running the event. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3039 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3040 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3041 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3042 /* Clear the queue */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3043 eventQueue = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3044 return true; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3045 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3046 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3047 bool runPopups () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3048 if (popups is null) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3049 bool result = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3050 while (popups !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3051 Menu menu = popups [0]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3052 if (menu is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3053 int length_ = popups.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3054 System.arraycopy (popups, 1, popups, 0, --length_); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3055 popups [length_] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3056 // clearMenuFlags (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3057 runDeferredEvents (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3058 if (!menu.isDisposed ()) menu._setVisible (true); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3059 // clearMenuFlags (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3060 result = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3061 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3062 popups = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3063 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3064 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3065 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3066 bool runTimers () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3067 if (timerList is null) return false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3068 bool result = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3069 for (int i=0; i<timerList.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3070 if (nsTimers [i] is null && timerList [i] !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3071 Runnable runnable = timerList [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3072 timerList [i] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3073 if (runnable !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3074 result = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3075 runnable.run (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3076 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3077 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3078 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3079 return result; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3080 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3081 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3082 void sendEvent (int eventType, Event event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3083 if (eventTable is null && filterTable is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3084 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3085 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3086 if (event is null) event = new Event (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3087 event.display = this; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3088 event.type = eventType; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3089 if (event.time is 0) event.time = getLastEventTime (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3090 if (!filterEvent (event)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3091 if (eventTable !is null) eventTable.sendEvent (event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3092 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3093 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3094 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3095 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3096 * On platforms which support it, sets the application name |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3097 * to be the argument. On Motif, for example, this can be used |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3098 * to set the name used for resource lookup. Specifying |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3099 * <code>null</code> for the name clears it. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3100 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3101 * @param name the new app name or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3102 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3103 public static void setAppName (String name) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3104 APP_NAME = name; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3105 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3106 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3107 //TODO use custom timer instead of timerExec |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3108 Runnable hoverTimer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3109 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3110 //TODO - use custom timer instead of timerExec |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3111 Runnable caretTimer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3112 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3113 void setCurrentCaret (Caret caret) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3114 // if (caretID !is 0) OS.RemoveEventLoopTimer (caretID); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3115 // caretID = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3116 currentCaret = caret; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3117 if (currentCaret !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3118 int blinkRate = currentCaret.blinkRate; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3119 timerExec (blinkRate, caretTimer); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3120 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3121 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3122 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3123 void setCursor (Control control) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3124 Cursor cursor = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3125 if (control !is null) cursor = control.findCursor (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3126 if (cursor is null) cursor = getSystemCursor (DWT.CURSOR_ARROW); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3127 cursor.handle.set (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3128 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3129 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3130 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3131 * Sets the location of the on-screen pointer relative to the top left corner |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3132 * of the screen. <b>Note: It is typically considered bad practice for a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3133 * program to move the on-screen pointer location.</b> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3134 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3135 * @param x the new x coordinate for the cursor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3136 * @param y the new y coordinate for the cursor |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3137 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3138 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3139 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3140 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3141 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3142 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3143 * @since 2.1 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3144 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3145 public void setCursorLocation (int x, int y) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3146 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3147 CGPoint pt = CGPoint (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3148 pt.x = x; pt.y = y; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3149 OS.CGWarpMouseCursorPosition (pt); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3150 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3151 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3152 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3153 * Sets the location of the on-screen pointer relative to the top left corner |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3154 * of the screen. <b>Note: It is typically considered bad practice for a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3155 * program to move the on-screen pointer location.</b> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3156 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3157 * @param point new position |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3158 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3159 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3160 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3161 * <li>ERROR_NULL_ARGUMENT - if the point is null |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3162 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3163 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3164 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3165 * @since 2.0 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3166 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3167 public void setCursorLocation (Point point) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3168 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3169 if (point is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3170 setCursorLocation (point.x, point.y); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3171 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3172 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3173 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3174 * Sets the application defined property of the receiver |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3175 * with the specified name to the given argument. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3176 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3177 * Applications may have associated arbitrary objects with the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3178 * receiver in this fashion. If the objects stored in the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3179 * properties need to be notified when the display is disposed |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3180 * of, it is the application's responsibility provide a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3181 * <code>disposeExec()</code> handler which does so. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3182 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3183 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3184 * @param key the name of the property |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3185 * @param value the new value for the property |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3186 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3187 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3188 * <li>ERROR_NULL_ARGUMENT - if the key is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3189 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3190 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3191 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3192 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3193 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3194 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3195 * @see #getData(String) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3196 * @see #disposeExec(Runnable) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3197 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3198 public void setData (String key, Object value) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3199 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3200 //if (key is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3201 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3202 if (key.equals (ADD_WIDGET_KEY)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3203 auto wrap = cast(ArrayWrapperObject) value; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3204 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3205 if (wrap is null) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3206 DWT.error(DWT.ERROR_INVALID_ARGUMENT, null, " []"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3207 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3208 Object [] data = wrap.array; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3209 NSObject object = cast(NSObject)data [0]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3210 Widget widget = cast(Widget)data [1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3211 if (widget is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3212 removeWidget (object); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3213 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3214 addWidget (object, widget); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3215 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3216 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3217 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3218 /* Remove the key/value pair */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3219 if (value is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3220 if (keys is null) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3221 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3222 while (index < keys.length && !keys [index].equals (key)) index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3223 if (index is keys.length) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3224 if (keys.length is 1) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3225 keys = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3226 values = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3227 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3228 String [] newKeys = new String [keys.length - 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3229 Object [] newValues = new Object [values.length - 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3230 System.arraycopy (keys, 0, newKeys, 0, index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3231 System.arraycopy (keys, index + 1, newKeys, index, newKeys.length - index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3232 System.arraycopy (values, 0, newValues, 0, index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3233 System.arraycopy (values, index + 1, newValues, index, newValues.length - index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3234 keys = newKeys; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3235 values = newValues; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3236 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3237 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3238 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3239 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3240 /* Add the key/value pair */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3241 if (keys is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3242 keys = [key]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3243 values = [value]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3244 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3245 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3246 for (int i=0; i<keys.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3247 if (keys [i].equals (key)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3248 values [i] = value; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3249 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3250 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3251 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3252 String [] newKeys = new String [keys.length + 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3253 Object [] newValues = new Object [values.length + 1]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3254 System.arraycopy (keys, 0, newKeys, 0, keys.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3255 System.arraycopy (values, 0, newValues, 0, values.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3256 newKeys [keys.length] = key; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3257 newValues [values.length] = value; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3258 keys = newKeys; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3259 values = newValues; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3260 } |
45 | 3261 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3262 void setMenuBar (Menu menu) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3263 if (menu is menuBar) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3264 menuBar = menu; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3265 //remove all existing menu items except the application menu |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3266 NSMenu menubar = application.mainMenu(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3267 NSInteger count = menubar.numberOfItems(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3268 while (count > 1) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3269 menubar.removeItemAtIndex(count - 1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3270 count--; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3271 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3272 //set parent of each item to NULL and add them to menubar |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3273 if (menu !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3274 MenuItem[] items = menu.getItems(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3275 for (int i = 0; i < items.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3276 items[i].nsItem.setMenu(null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3277 menubar.addItem(items[i].nsItem); |
45 | 3278 } |
3279 } | |
3280 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3281 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3282 void setModalShell (Shell shell) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3283 if (modalShells is null) modalShells = new Shell [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3284 int index = 0, length = modalShells.length; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3285 while (index < length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3286 if (modalShells [index] is shell) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3287 if (modalShells [index] is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3288 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3289 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3290 if (index is length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3291 Shell [] newModalShells = new Shell [length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3292 System.arraycopy (modalShells, 0, newModalShells, 0, length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3293 modalShells = newModalShells; |
45 | 3294 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3295 modalShells [index] = shell; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3296 Shell [] shells = getShells (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3297 for (int i=0; i<shells.length; i++) shells [i].updateModal (); |
45 | 3298 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3299 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3300 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3301 * Sets the application defined, display specific data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3302 * associated with the receiver, to the argument. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3303 * The <em>display specific data</em> is a single, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3304 * unnamed field that is stored with every display. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3305 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3306 * Applications may put arbitrary objects in this field. If |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3307 * the object stored in the display specific data needs to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3308 * be notified when the display is disposed of, it is the |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3309 * application's responsibility provide a |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3310 * <code>disposeExec()</code> handler which does so. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3311 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3312 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3313 * @param data the new display specific data |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3314 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3315 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3316 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3317 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3318 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3319 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3320 * @see #getData() |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3321 * @see #disposeExec(Runnable) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3322 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3323 public void setData (Object data) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3324 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3325 this.data = data; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3326 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3327 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3328 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3329 * Sets the synchronizer used by the display to be |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3330 * the argument, which can not be null. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3331 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3332 * @param synchronizer the new synchronizer for the display (must not be null) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3333 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3334 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3335 * <li>ERROR_NULL_ARGUMENT - if the synchronizer is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3336 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3337 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3338 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3339 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3340 * <li>ERROR_FAILED_EXEC - if an exception occurred while running an inter-thread message</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3341 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3342 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3343 public void setSynchronizer (Synchronizer synchronizer) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3344 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3345 if (synchronizer is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3346 if (synchronizer is this.synchronizer) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3347 Synchronizer oldSynchronizer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3348 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3349 oldSynchronizer = this.synchronizer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3350 this.synchronizer = synchronizer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3351 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3352 if (oldSynchronizer !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3353 oldSynchronizer.runAsyncMessages(true); |
45 | 3354 } |
3355 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3356 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3357 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3358 * Causes the user-interface thread to <em>sleep</em> (that is, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3359 * to be put in a state where it does not consume CPU cycles) |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3360 * until an event is received or it is otherwise awakened. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3361 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3362 * @return <code>true</code> if an event requiring dispatching was placed on the queue. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3363 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3364 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3365 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3366 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3367 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3368 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3369 * @see #wake |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3370 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3371 public bool sleep () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3372 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3373 if (getMessageCount () !is 0) return true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3374 if (loopCounter is 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3375 pool.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3376 pool = cast(NSAutoreleasePool)(new NSAutoreleasePool()).alloc().init(); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3377 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3378 allowTimers = runAsyncMessages = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3379 NSRunLoop.currentRunLoop().runMode(OS.NSDefaultRunLoopMode, NSDate.distantFuture()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3380 allowTimers = runAsyncMessages = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3381 return true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3382 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3383 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3384 int sourceProc (int info) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3385 return 0; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3386 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3387 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3388 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3389 * Causes the <code>run()</code> method of the runnable to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3390 * be invoked by the user-interface thread at the next |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3391 * reasonable opportunity. The thread which calls this method |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3392 * is suspended until the runnable completes. Specifying <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3393 * as the runnable simply wakes the user-interface thread. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3394 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3395 * Note that at the time the runnable is invoked, widgets |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3396 * that have the receiver as their display may have been |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3397 * disposed. Therefore, it is necessary to check for this |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3398 * case inside the runnable before accessing the widget. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3399 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3400 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3401 * @param runnable code to run on the user-interface thread or <code>null</code> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3402 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3403 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3404 * <li>ERROR_FAILED_EXEC - if an exception occurred when executing the runnable</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3405 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3406 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3407 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3408 * @see #asyncExec |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3409 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3410 public void syncExec (Runnable runnable) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3411 Synchronizer synchronizer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3412 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3413 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3414 synchronizer = this.synchronizer; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3415 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3416 synchronizer.syncExec (runnable); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3417 } |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
3418 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3419 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3420 * Causes the <code>run()</code> method of the runnable to |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3421 * be invoked by the user-interface thread after the specified |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3422 * number of milliseconds have elapsed. If milliseconds is less |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3423 * than zero, the runnable is not executed. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3424 * <p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3425 * Note that at the time the runnable is invoked, widgets |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3426 * that have the receiver as their display may have been |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3427 * disposed. Therefore, it is necessary to check for this |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3428 * case inside the runnable before accessing the widget. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3429 * </p> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3430 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3431 * @param milliseconds the delay before running the runnable |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3432 * @param runnable code to run on the user-interface thread |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3433 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3434 * @exception IllegalArgumentException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3435 * <li>ERROR_NULL_ARGUMENT - if the runnable is null</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3436 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3437 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3438 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3439 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3440 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3441 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3442 * @see #asyncExec |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3443 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3444 public void timerExec (int milliseconds, Runnable runnable) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3445 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3446 //TODO - remove a timer, reschedule a timer not tested |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3447 if (runnable is null) error (DWT.ERROR_NULL_ARGUMENT); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3448 if (timerList is null) timerList = new Runnable [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3449 if (nsTimers is null) nsTimers = new NSTimer [4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3450 int index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3451 while (index < timerList.length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3452 if (timerList [index] is runnable) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3453 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3454 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3455 if (index !is timerList.length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3456 NSTimer timer = nsTimers [index]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3457 if (timer is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3458 timerList [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3459 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3460 if (milliseconds < 0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3461 timer.invalidate(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3462 timerList [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3463 nsTimers [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3464 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3465 timer.setFireDate(NSDate.dateWithTimeIntervalSinceNow (milliseconds / 1000.0)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3466 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3467 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3468 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3469 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3470 if (milliseconds < 0) return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3471 index = 0; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3472 while (index < timerList.length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3473 if (timerList [index] is null) break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3474 index++; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3475 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3476 if (index is timerList.length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3477 Runnable [] newTimerList = new Runnable [timerList.length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3478 SimpleType!(Runnable).arraycopy (timerList, 0, newTimerList, 0, timerList.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3479 timerList = newTimerList; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3480 NSTimer [] newTimerIds = new NSTimer [nsTimers.length + 4]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3481 System.arraycopy (nsTimers, 0, newTimerIds, 0, nsTimers.length); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3482 nsTimers = newTimerIds; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3483 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3484 NSNumber userInfo = NSNumber.numberWithInt(index); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3485 NSTimer timer = NSTimer.scheduledTimerWithTimeInterval(milliseconds / 1000.0, timerDelegate, OS.sel_timerProc_, userInfo, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3486 timer.retain(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3487 if (timer !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3488 nsTimers [index] = timer; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3489 timerList [index] = runnable; |
45 | 3490 } |
3491 } | |
3492 | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3493 objc.id timerProc (objc.id id, objc.SEL sel, objc.id timerID) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3494 NSTimer timer = new NSTimer (timerID); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3495 NSNumber number = new NSNumber(timer.userInfo()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3496 int index = number.intValue(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3497 if (timerList is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3498 if (0 <= index && index < timerList.length) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3499 if (allowTimers) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3500 Runnable runnable = timerList [index]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3501 timerList [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3502 nsTimers [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3503 if (runnable !is null) runnable.run (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3504 } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3505 nsTimers [index] = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3506 wakeThread (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3507 } |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3508 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3509 timer.release(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3510 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3511 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3512 |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3513 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3514 * Forces all outstanding paint requests for the display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3515 * to be processed before this method returns. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3516 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3517 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3518 * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3519 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3520 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3521 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3522 * @see Control#update() |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3523 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3524 public void update () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3525 checkDevice (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3526 // Shell [] shells = getShells (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3527 // for (int i=0; i<shells.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3528 // Shell shell = shells [i]; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3529 // if (!shell.isDisposed ()) shell.update (true); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3530 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3531 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3532 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3533 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3534 /** |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3535 * If the receiver's user-interface thread was <code>sleep</code>ing, |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3536 * causes it to be awakened and start running again. Note that this |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3537 * method may be called from any thread. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3538 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3539 * @exception DWTException <ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3540 * <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3541 * </ul> |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3542 * |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3543 * @see #sleep |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3544 */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3545 public void wake () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3546 synchronized (Device.classinfo) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3547 if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3548 if (thread is Thread.getThis ()) return; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3549 wakeThread (); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3550 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3551 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3552 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3553 void wakeThread () { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3554 NSObject object = (new NSObject()).alloc().init(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3555 object.performSelectorOnMainThread(OS.sel_release, null, false); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3556 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3557 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3558 Control findControl (NSEvent nsEvent, bool checkGrab, bool checkTrim, bool checkWindows) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3559 if (checkGrab && grabControl !is null && !grabControl.isDisposed()) return grabControl; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3560 NSPoint point = NSEvent.mouseLocation(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3561 NSView view = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3562 NSWindow window = nsEvent !is null ? nsEvent.window() : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3563 if (window !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3564 view = window.contentView().hitTest (window.convertScreenToBase(point)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3565 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3566 if (view is null && checkWindows) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3567 NSArray windows = application.orderedWindows(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3568 for (int i = 0; i < windows.count() && view is null; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3569 window = new NSWindow(windows.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3570 NSView contentView = window.contentView(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3571 if (contentView !is null) view = contentView.hitTest (window.convertScreenToBase(point)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3572 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3573 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3574 Control control = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3575 if (view !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3576 do { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3577 Widget widget = getWidget (view); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3578 if (cast(Control) widget) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3579 control = cast(Control)widget; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3580 break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3581 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3582 view = view.superview(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3583 } while (view !is null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3584 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3585 if (checkTrim) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3586 if (control !is null && control.isTrim (view)) control = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3587 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3588 return control; |
45 | 3589 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3590 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3591 objc.id applicationNextEventMatchingMask (objc.id id, objc.SEL sel, objc.id mask, objc.id expiration, objc.id mode, objc.id dequeue) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3592 objc_super super_struct = objc_super(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3593 super_struct.receiver = id; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3594 super_struct.super_class = cast(objc.Class) OS.objc_msgSend(id, OS.sel_superclass); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3595 objc.id result = OS.objc_msgSendSuper(&super_struct, sel, mask, expiration, mode, dequeue !is null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3596 if (result !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3597 if (trackingControl !is null && dequeue !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3598 NSEvent nsEvent = new NSEvent(result); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3599 applicationSendMouseEvent(nsEvent, true); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3600 } |
45 | 3601 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3602 return result; |
45 | 3603 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3604 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3605 void applicationSendMouseEvent (NSEvent nsEvent, bool send) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3606 if (send) runDeferredEvents(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3607 bool up = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3608 NSEventType type = nsEvent.type(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3609 switch (type) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3610 case OS.NSLeftMouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3611 case OS.NSRightMouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3612 case OS.NSOtherMouseDown: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3613 Control control = grabControl = findControl(nsEvent, false, true, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3614 if (control !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3615 if (nsEvent.clickCount() is 1 && (control.state & Widget.DRAG_DETECT) !is 0 && control.hooks (DWT.DragDetect) && control.dragDetect()) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3616 dragging = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3617 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3618 control.sendMouseEvent (nsEvent, DWT.MouseDown, send); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3619 if (nsEvent.clickCount() is 2) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3620 control.sendMouseEvent (nsEvent, DWT.MouseDoubleClick, send); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3621 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3622 } |
45 | 3623 break; |
3624 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3625 case OS.NSLeftMouseUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3626 case OS.NSRightMouseUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3627 case OS.NSOtherMouseUp: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3628 Control control = findControl(nsEvent, true, true, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3629 if (control !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3630 control.sendMouseEvent (nsEvent, DWT.MouseUp, send); |
45 | 3631 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3632 grabControl = null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3633 up = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3634 //FALL THROUGH |
45 | 3635 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3636 case OS.NSLeftMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3637 case OS.NSRightMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3638 case OS.NSOtherMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3639 case OS.NSMouseMoved: { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3640 Control control = findControl(nsEvent, true, true, type is OS.NSMouseMoved); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3641 if (dragging) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3642 dragging = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3643 control.sendDragEvent(nsEvent); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3644 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3645 if (control !is currentControl) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3646 if (currentControl !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3647 currentControl.sendMouseEvent (nsEvent, DWT.MouseExit, send); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3648 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3649 currentControl = control; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3650 if (control !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3651 control.sendMouseEvent (nsEvent, DWT.MouseEnter, send); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3652 if (up) timerExec (getToolTipTime (), hoverTimer); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3653 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3654 setCursor (control); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3655 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3656 if (!up && control !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3657 timerExec (getToolTipTime (), hoverTimer); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3658 control.sendMouseEvent (nsEvent, DWT.MouseMove, send); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3659 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3660 break; |
45 | 3661 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3662 default: |
45 | 3663 } |
3664 } | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3665 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3666 void applicationSendEvent (objc.id id, objc.SEL sel, objc.id event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3667 NSEvent nsEvent = new NSEvent(event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3668 NSEventType type = nsEvent.type (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3669 bool beep_ = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3670 switch (type) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3671 case OS.NSLeftMouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3672 case OS.NSRightMouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3673 case OS.NSOtherMouseDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3674 beep_ = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3675 case OS.NSLeftMouseUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3676 case OS.NSRightMouseUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3677 case OS.NSMouseMoved: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3678 case OS.NSLeftMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3679 case OS.NSRightMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3680 case OS.NSMouseEntered: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3681 case OS.NSMouseExited: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3682 case OS.NSKeyDown: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3683 case OS.NSKeyUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3684 case OS.NSOtherMouseUp: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3685 case OS.NSOtherMouseDragged: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3686 case OS.NSScrollWheel: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3687 NSWindow window = nsEvent.window (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3688 if (window !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3689 Shell shell = cast(Shell) getWidget (window.id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3690 if (shell !is null && shell.getModalShell () !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3691 if (beep_) beep (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3692 return; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3693 } |
45 | 3694 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3695 break; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3696 default: |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3697 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3698 applicationSendMouseEvent (nsEvent, false); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3699 objc_super super_struct = objc_super (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3700 super_struct.receiver = id; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3701 super_struct.super_class = cast(objc.Class) OS.objc_msgSend (id, OS.sel_superclass); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3702 OS.objc_msgSendSuper (&super_struct, sel, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3703 // if (nsEvent.type() is OS.NSApplicationDefined && nsEvent.subtype() is SWT_IDLE_TYPE) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3704 // idle = true; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3705 // } else { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3706 // idle = false; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3707 // } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3708 // application.stop(null); |
45 | 3709 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3710 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3711 extern (C): |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3712 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3713 // #245724: [NSApplication isRunning] must return true to allow the AWT to load correctly. |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3714 static objc.id applicationProc2(objc.id id, objc.SEL sel) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3715 //TODO optimize getting the display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3716 Display display = getCurrent (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3717 if (display is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3718 if (sel is OS.sel_isRunning) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3719 return cast(objc.id) (display.isDisposed() ? null : cast(objc.id) 1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3720 } |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
3721 return null; |
45 | 3722 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3723 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3724 static objc.id applicationProc3(objc.id id, objc.SEL sel, objc.id event) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3725 //TODO optimize getting the display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3726 Display display = getCurrent (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3727 if (display is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3728 if (sel is OS.sel_sendEvent_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3729 display.applicationSendEvent (id, sel, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3730 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3731 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3732 return null; |
45 | 3733 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3734 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3735 static objc.id applicationProc6(objc.id id, objc.SEL sel, objc.id arg0, objc.id arg1, objc.id arg2, objc.id arg3) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3736 //TODO optimize getting the display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3737 Display display = getCurrent (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3738 if (display is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3739 if (sel is OS.sel_nextEventMatchingMask_untilDate_inMode_dequeue_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3740 return display.applicationNextEventMatchingMask(id, sel, arg0, arg1, arg2, arg3); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3741 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3742 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3743 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3744 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3745 static objc.id applicationDelegateProc(objc.id id, objc.SEL sel, objc.id arg0) { |
45 | 3746 //TODO optimize getting the display |
3747 Display display = getCurrent (); | |
3748 if (display is null) return null; | |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3749 cocoa.id applicationDelegate = display.applicationDelegate; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3750 NSApplication application = display.application; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3751 if (sel is OS.sel_applicationWillFinishLaunching_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3752 NSDictionary dict = NSDictionary.dictionaryWithObject(applicationDelegate, NSString.stringWith("NSOwner")); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3753 NSString nibFile = NSString.stringWith("/System/Library/Frameworks/JavaVM.framework/Resources/English.lproj/DefaultApp.nib"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3754 if (!NSBundle.loadNibFile(nibFile, dict, null)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3755 nibFile = NSString.stringWith("/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Resources/English.lproj/DefaultApp.nib"); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3756 NSBundle.loadNibFile(nibFile, dict, null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3757 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3758 //replace %@ with application name |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3759 NSMenu mainmenu = application.mainMenu(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3760 NSMenuItem appitem = mainmenu.itemAtIndex(0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3761 if (appitem !is null) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3762 NSMenu sm = appitem.submenu(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3763 NSArray ia = sm.itemArray(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3764 for(int i = 0; i < ia.count(); i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3765 NSMenuItem ni = new NSMenuItem(ia.objectAtIndex(i)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3766 NSString title = ni.title().stringByReplacingOccurrencesOfString(NSString.stringWith("%@"), NSString.stringWith(APP_NAME)); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3767 ni.setTitle(title); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3768 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3769 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3770 } else if (sel is OS.sel_terminate_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3771 application.terminate(application); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3772 } else if (sel is OS.sel_orderFrontStandardAboutPanel_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3773 // Event event = new Event (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3774 // sendEvent (DWT.ABORT, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3775 } else if (sel is OS.sel_hideOtherApplications_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3776 application.hideOtherApplications(application); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3777 } else if (sel is OS.sel_hide_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3778 application.hide(application); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3779 } else if (sel is OS.sel_unhideAllApplications_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3780 application.unhideAllApplications(application); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3781 } else if (sel is OS.sel_applicationShouldTerminate_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3782 if (!display.disposing) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3783 Event event = new Event (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3784 display.sendEvent (DWT.Close, event); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3785 if (event.doit) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3786 return cast(objc.id) OS.NSTerminateNow; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3787 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3788 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3789 return cast(objc.id) OS.NSTerminateCancel; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3790 } else if (sel is OS.sel_applicationWillTerminate_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3791 display.dispose(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3792 } else if (sel is OS.sel_applicationWillResignActive_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3793 Shell[] shells = display.getShells(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3794 for (int i = 0; i < shells.length; i++) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3795 shells[i].clearLevel(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3796 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3797 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3798 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3799 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3800 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3801 static objc.id dialogProc(objc.id id, objc.SEL sel, objc.id arg0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3802 void* jniRef; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3803 OS.object_getInstanceVariable(id, SWT_OBJECT, jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3804 if (jniRef is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3805 if (sel is OS.sel_changeColor_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3806 ColorDialog dialog = cast(ColorDialog)OS.JNIGetObject(jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3807 if (jniRef is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3808 dialog.changeColor(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3809 } else if (sel is OS.sel_changeFont_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3810 FontDialog dialog = cast(FontDialog)OS.JNIGetObject(jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3811 if (dialog is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3812 dialog.changeFont(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3813 } else if (sel is OS.sel_windowWillClose_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3814 Object object = OS.JNIGetObject(jniRef); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3815 if (cast(FontDialog) object) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3816 (cast(FontDialog)object).windowWillClose(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3817 } else if (cast(ColorDialog) object) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3818 (cast(ColorDialog)object).windowWillClose(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3819 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3820 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3821 return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3822 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3823 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3824 static objc.id windowDelegateProc2(objc.id id, objc.SEL sel) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3825 Widget widget = GetWidget(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3826 if (widget is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3827 if (sel is OS.sel_sendSelection) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3828 widget.sendSelection(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3829 } else if (sel is OS.sel_sendDoubleSelection) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3830 widget.sendDoubleSelection(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3831 } else if (sel is OS.sel_sendVerticalSelection) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3832 widget.sendVerticalSelection(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3833 } else if (sel is OS.sel_sendHorizontalSelection) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3834 widget.sendHorizontalSelection(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3835 } else if (sel is OS.sel_acceptsFirstResponder) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3836 return widget.acceptsFirstResponder(id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3837 } else if (sel is OS.sel_becomeFirstResponder) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3838 return widget.becomeFirstResponder(id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3839 } else if (sel is OS.sel_resignFirstResponder) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3840 return widget.resignFirstResponder(id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3841 } else if (sel is OS.sel_isFlipped) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3842 return widget.isFlipped(id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3843 } else if (sel is OS.sel_isOpaque) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3844 return widget.isOpaque(id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3845 } else if (sel is OS.sel_unmarkText) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3846 //TODO not called? |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3847 } else if (sel is OS.sel_validAttributesForMarkedText) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3848 return widget.validAttributesForMarkedText (id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3849 } else if (sel is OS.sel_markedRange) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3850 NSRange range = widget.markedRange (id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3851 /* NOTE that this is freed in C */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3852 objc.id result = cast(objc.id) OS.malloc (NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3853 OS.memmove (result, &range, NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3854 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3855 } else if (sel is OS.sel_selectedRange) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3856 NSRange range = widget.selectedRange (id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3857 /* NOTE that this is freed in C */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3858 objc.id result = cast(objc.id) OS.malloc (NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3859 OS.memmove (result, &range, NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3860 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3861 } else if (sel is OS.sel_hasMarkedText) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3862 return widget.hasMarkedText (id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3863 } else if (sel is OS.sel_canBecomeKeyWindow) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3864 return widget.canBecomeKeyWindow (id, sel) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3865 } else if (sel is OS.sel_accessibilityActionNames) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3866 return widget.accessibilityActionNames(id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3867 } else if (sel is OS.sel_accessibilityAttributeNames) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3868 return widget.accessibilityAttributeNames(id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3869 } else if (sel is OS.sel_accessibilityParameterizedAttributeNames) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3870 return widget.accessibilityParameterizedAttributeNames(id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3871 } else if (sel is OS.sel_accessibilityFocusedUIElement) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3872 return widget.accessibilityFocusedUIElement(id, sel); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3873 } else if (sel is OS.sel_accessibilityIsIgnored) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3874 return (widget.accessibilityIsIgnored(id, sel) ? cast(objc.id) 1 : null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3875 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3876 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
3877 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3878 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3879 static objc.id windowDelegateProc3(objc.id id, objc.SEL sel, objc.id arg0) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3880 if (sel is OS.sel_timerProc_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3881 //TODO optimize getting the display |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3882 Display display = getCurrent (); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3883 if (display is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3884 return display.timerProc (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3885 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3886 Widget widget = GetWidget(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3887 if (widget is null && (sel is OS.sel_keyDown_ ||sel is OS.sel_keyUp_ ||sel is OS.sel_insertText_ ||sel is OS.sel_doCommandBySelector_)) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3888 widget = GetFocusControl ((new NSView (id)).window ()); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3889 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3890 if (widget is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3891 if (sel is OS.sel_windowWillClose_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3892 widget.windowWillClose(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3893 } else if (sel is OS.sel_drawRect_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3894 NSRect rect = NSRect(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3895 OS.memmove(&rect, arg0, NSRect.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3896 widget.drawRect(id, sel, rect); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3897 } else if (sel is OS.sel_setFrameOrigin_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3898 NSPoint point = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3899 OS.memmove(&point, arg0, NSPoint.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3900 widget.setFrameOrigin(id, sel, point); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3901 } else if (sel is OS.sel_setFrameSize_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3902 NSSize size = NSSize(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3903 OS.memmove(&size, arg0, NSSize.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3904 widget.setFrameSize(id, sel, size); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3905 } else if (sel is OS.sel_hitTest_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3906 NSPoint point = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3907 OS.memmove(&point, arg0, NSPoint.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3908 return widget.hitTest(id, sel, point); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3909 } else if (sel is OS.sel_windowShouldClose_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3910 return widget.windowShouldClose(id, sel, arg0) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3911 } else if (sel is OS.sel_mouseDown_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3912 widget.mouseDown(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3913 } else if (sel is OS.sel_keyDown_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3914 widget.keyDown(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3915 } else if (sel is OS.sel_keyUp_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3916 widget.keyUp(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3917 } else if (sel is OS.sel_flagsChanged_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3918 widget.flagsChanged(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3919 } else if (sel is OS.sel_mouseUp_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3920 widget.mouseUp(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3921 } else if (sel is OS.sel_rightMouseDown_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3922 widget.rightMouseDown(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3923 } else if (sel is OS.sel_rightMouseUp_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3924 widget.rightMouseUp(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3925 } else if (sel is OS.sel_otherMouseDown_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3926 widget.otherMouseDown(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3927 } else if (sel is OS.sel_otherMouseUp_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3928 widget.otherMouseUp(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3929 } else if (sel is OS.sel_mouseMoved_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3930 widget.mouseMoved(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3931 } else if (sel is OS.sel_mouseDragged_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3932 widget.mouseDragged(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3933 } else if (sel is OS.sel_mouseEntered_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3934 widget.mouseEntered(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3935 } else if (sel is OS.sel_mouseExited_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3936 widget.mouseExited(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3937 } else if (sel is OS.sel_menuForEvent_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3938 return widget.menuForEvent(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3939 } else if (sel is OS.sel_numberOfRowsInTableView_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3940 return cast(objc.id) widget.numberOfRowsInTableView(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3941 } else if (sel is OS.sel_comboBoxSelectionDidChange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3942 widget.comboBoxSelectionDidChange(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3943 } else if (sel is OS.sel_tableViewSelectionDidChange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3944 widget.tableViewSelectionDidChange(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3945 } else if (sel is OS.sel_windowDidResignKey_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3946 widget.windowDidResignKey(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3947 } else if (sel is OS.sel_windowDidBecomeKey_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3948 widget.windowDidBecomeKey(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3949 } else if (sel is OS.sel_windowDidResize_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3950 widget.windowDidResize(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3951 } else if (sel is OS.sel_windowDidMove_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3952 widget.windowDidMove(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3953 } else if (sel is OS.sel_menuWillOpen_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3954 widget.menuWillOpen(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3955 } else if (sel is OS.sel_menuDidClose_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3956 widget.menuDidClose(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3957 } else if (sel is OS.sel_menuNeedsUpdate_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3958 widget.menuNeedsUpdate(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3959 } else if (sel is OS.sel_outlineViewSelectionDidChange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3960 widget.outlineViewSelectionDidChange(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3961 } else if (sel is OS.sel_outlineViewItemDidExpand_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3962 widget.outlineViewItemDidExpand(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3963 } else if (sel is OS.sel_sendEvent_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3964 widget.windowSendEvent(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3965 } else if (sel is OS.sel_helpRequested_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3966 widget.helpRequested(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3967 } else if (sel is OS.sel_scrollWheel_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3968 widget.scrollWheel(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3969 } else if (sel is OS.sel_pageDown_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3970 widget.pageDown(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3971 } else if (sel is OS.sel_pageUp_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3972 widget.pageUp(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3973 } else if (sel is OS.sel_textViewDidChangeSelection_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3974 widget.textViewDidChangeSelection(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3975 } else if (sel is OS.sel_textDidChange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3976 widget.textDidChange(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3977 } else if (sel is OS.sel_attributedSubstringFromRange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3978 return widget.attributedSubstringFromRange (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3979 } else if (sel is OS.sel_characterIndexForPoint_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3980 return cast(objc.id) widget.characterIndexForPoint (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3981 } else if (sel is OS.sel_firstRectForCharacterRange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3982 NSRect rect = widget.firstRectForCharacterRange (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3983 /* NOTE that this is freed in C */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3984 objc.id result = cast(objc.id) OS.malloc (NSRect.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3985 OS.memmove (result, &rect, NSRect.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3986 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3987 } else if (sel is OS.sel_insertText_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3988 widget.insertText (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3989 } else if (sel is OS.sel_doCommandBySelector_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3990 widget.doCommandBySelector (id, sel, cast(char*) arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3991 } else if (sel is OS.sel_highlightSelectionInClipRect_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3992 widget.highlightSelectionInClipRect (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3993 } else if (sel is OS.sel_reflectScrolledClipView_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3994 widget.reflectScrolledClipView (id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3995 } else if (sel is OS.sel_accessibilityHitTest_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3996 NSPoint point = NSPoint(); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3997 OS.memmove(&point, arg0, NSPoint.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3998 return widget.accessibilityHitTest(id, sel, point); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
3999 } else if (sel is OS.sel_accessibilityAttributeValue_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4000 return widget.accessibilityAttributeValue(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4001 } else if (sel is OS.sel_accessibilityIsAttributeSettable_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4002 return (widget.accessibilityIsAttributeSettable(id, sel, arg0) ? cast(objc.id) 1 : null); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4003 } else if (sel is OS.sel_accessibilityPerformAction_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4004 widget.accessibilityPerformAction(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4005 } else if (sel is OS.sel_accessibilityActionDescription_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4006 widget.accessibilityActionDescription(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4007 } else if (sel is OS.sel_makeFirstResponder_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4008 return widget.makeFirstResponder(id, sel, arg0) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4009 } else if (sel is OS.sel_tableViewColumnDidMove_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4010 widget.tableViewColumnDidMove(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4011 } else if (sel is OS.sel_tableViewColumnDidResize_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4012 widget.tableViewColumnDidResize(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4013 } else if (sel is OS.sel_outlineViewColumnDidMove_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4014 widget.outlineViewColumnDidMove(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4015 } else if (sel is OS.sel_outlineViewColumnDidResize_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4016 widget.outlineViewColumnDidResize(id, sel, arg0); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4017 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4018 return null; |
37
642f460a0908
Fixed a lot of compile errors, a "hello world" app compiles now
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
36
diff
changeset
|
4019 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4020 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4021 static objc.id windowDelegateProc4(objc.id id, objc.SEL sel, objc.id arg0, objc.id arg1) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4022 Widget widget = GetWidget(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4023 if (widget is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4024 if (sel is OS.sel_tabView_willSelectTabViewItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4025 widget.tabView_willSelectTabViewItem(id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4026 } else if (sel is OS.sel_tabView_didSelectTabViewItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4027 widget.tabView_didSelectTabViewItem(id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4028 } else if (sel is OS.sel_outlineView_isItemExpandable_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4029 return widget.outlineView_isItemExpandable(id, sel, arg0, arg1) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4030 } else if (sel is OS.sel_outlineView_numberOfChildrenOfItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4031 return cast(objc.id) widget.outlineView_numberOfChildrenOfItem(id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4032 } else if (sel is OS.sel_outlineView_shouldCollapseItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4033 return widget.outlineView_shouldCollapseItem(id, sel, arg0, arg1) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4034 } else if (sel is OS.sel_outlineView_shouldExpandItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4035 return widget.outlineView_shouldExpandItem(id, sel, arg0, arg1) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4036 } else if (sel is OS.sel_menu_willHighlightItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4037 widget.menu_willHighlightItem(id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4038 } else if (sel is OS.sel_setMarkedText_selectedRange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4039 widget.setMarkedText_selectedRange (id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4040 } else if (sel is OS.sel_drawInteriorWithFrame_inView_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4041 widget.drawInteriorWithFrame_inView (id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4042 } else if (sel is OS.sel_accessibilityAttributeValue_forParameter_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4043 return widget.accessibilityAttributeValue_forParameter(id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4044 } else if (sel is OS.sel_tableView_didClickTableColumn_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4045 widget.tableView_didClickTableColumn (id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4046 } else if (sel is OS.sel_outlineView_didClickTableColumn_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4047 widget.outlineView_didClickTableColumn (id, sel, arg0, arg1); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4048 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4049 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4050 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4051 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4052 static objc.id windowDelegateProc5(objc.id id, objc.SEL sel, objc.id arg0, objc.id arg1, objc.id arg2) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4053 Widget widget = GetWidget(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4054 if (widget is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4055 if (sel is OS.sel_tableView_objectValueForTableColumn_row_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4056 return widget.tableView_objectValueForTableColumn_row(id, sel, arg0, arg1, arg2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4057 } else if (sel is OS.sel_tableView_shouldEditTableColumn_row_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4058 return widget.tableView_shouldEditTableColumn_row(id, sel, arg0, arg1, arg2) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4059 } else if (sel is OS.sel_textView_clickedOnLink_atIndex_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4060 return widget.textView_clickOnLink_atIndex(id, sel, arg0, arg1, arg2) ? cast(objc.id) 1 : null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4061 } else if (sel is OS.sel_outlineView_child_ofItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4062 return widget.outlineView_child_ofItem(id, sel, arg0, arg1, arg2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4063 } else if (sel is OS.sel_outlineView_objectValueForTableColumn_byItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4064 return widget.outlineView_objectValueForTableColumn_byItem(id, sel, arg0, arg1, arg2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4065 } else if (sel is OS.sel_textView_willChangeSelectionFromCharacterRange_toCharacterRange_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4066 NSRange range = widget.textView_willChangeSelectionFromCharacterRange_toCharacterRange(id, sel, arg0, arg1, arg2); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4067 /* NOTE that this is freed in C */ |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4068 objc.id result = cast(objc.id) OS.malloc (NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4069 OS.memmove (result, &range, NSRange.sizeof); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4070 return result; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4071 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4072 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4073 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4074 |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4075 static objc.id windowDelegateProc6(objc.id id, objc.SEL sel, objc.id arg0, objc.id arg1, objc.id arg2, objc.id arg3) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4076 Widget widget = GetWidget(id); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4077 if (widget is null) return null; |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4078 if (sel is OS.sel_tableView_willDisplayCell_forTableColumn_row_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4079 widget.tableView_willDisplayCell_forTableColumn_row(id, sel, arg0, arg1, arg2, arg3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4080 } else if (sel is OS.sel_outlineView_willDisplayCell_forTableColumn_item_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4081 widget.outlineView_willDisplayCell_forTableColumn_item(id, sel, arg0, arg1, arg2, arg3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4082 } else if (sel is OS.sel_outlineView_setObjectValue_forTableColumn_byItem_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4083 widget.outlineView_setObjectValue_forTableColumn_byItem(id, sel, arg0, arg1, arg2, arg3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4084 } else if (sel is OS.sel_tableView_setObjectValue_forTableColumn_row_) { |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4085 widget.tableView_setObjectValue_forTableColumn_row(id, sel, arg0, arg1, arg2, arg3); |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4086 } |
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4087 return null; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
4088 } |
61
c74ba20de292
Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents:
60
diff
changeset
|
4089 } |