Mercurial > projects > dwt-mac
annotate dwt/graphics/Cursor.d @ 156:969e7de37c3d default tip
Fixes to get dwt to work with dmd and ldc
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Wed, 08 Jul 2009 21:56:44 +0200 |
parents | 62202ce0039f |
children |
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 |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
10 * |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
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.graphics.Cursor; |
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 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
17 import dwt.DWT; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
18 import dwt.DWTError; |
45 | 19 import dwt.internal.cocoa.NSAutoreleasePool; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
20 import dwt.internal.cocoa.NSBitmapImageRep; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
21 import dwt.internal.cocoa.NSCursor; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
22 import dwt.internal.cocoa.NSImage; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
23 import dwt.internal.cocoa.NSPoint; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
24 import dwt.internal.cocoa.NSSize; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
25 import dwt.internal.cocoa.NSString; |
45 | 26 import dwt.internal.cocoa.NSThread; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
27 import dwt.internal.cocoa.OS; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
28 |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
29 import tango.text.convert.Format; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
30 |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
31 import dwt.dwthelper.utils; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
32 import dwt.graphics.Device; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
33 import dwt.graphics.ImageData; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
34 import dwt.graphics.PaletteData; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
35 import dwt.graphics.Resource; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
36 import dwt.graphics.RGB; |
60
62202ce0039f
Updated and fixed many modules to 3.514
Jacob Carlborg <doob@me.com>
parents:
46
diff
changeset
|
37 import dwt.internal.objc.cocoa.Cocoa; |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
38 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
39 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
40 * Instances of this class manage operating system resources that |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
41 * specify the appearance of the on-screen pointer. To create a |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
42 * cursor you specify the device and either a simple cursor style |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
43 * describing one of the standard operating system provided cursors |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
44 * or the image and mask data for the desired appearance. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
45 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
46 * Application code must explicitly invoke the <code>Cursor.dispose()</code> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
47 * method to release the operating system resources managed by each instance |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
48 * when those instances are no longer required. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
49 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
50 * <dl> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
51 * <dt><b>Styles:</b></dt> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
52 * <dd> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
53 * CURSOR_ARROW, CURSOR_WAIT, CURSOR_CROSS, CURSOR_APPSTARTING, CURSOR_HELP, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
54 * CURSOR_SIZEALL, CURSOR_SIZENESW, CURSOR_SIZENS, CURSOR_SIZENWSE, CURSOR_SIZEWE, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
55 * CURSOR_SIZEN, CURSOR_SIZES, CURSOR_SIZEE, CURSOR_SIZEW, CURSOR_SIZENE, CURSOR_SIZESE, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
56 * CURSOR_SIZESW, CURSOR_SIZENW, CURSOR_UPARROW, CURSOR_IBEAM, CURSOR_NO, CURSOR_HAND |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
57 * </dd> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
58 * </dl> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
59 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
60 * Note: Only one of the above styles may be specified. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
61 * </p> |
45 | 62 * |
63 * @see <a href="http://www.eclipse.org/swt/snippets/#cursor">Cursor snippets</a> | |
64 * @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
|
65 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
66 |
3 | 67 public final class Cursor : Resource { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
68 |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
69 alias Resource.init_ init_; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
70 static const byte[] WAIT_SOURCE; |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
71 |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
72 static this () |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
73 { |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
74 WAIT_SOURCE = [ |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
75 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
76 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
77 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
78 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
79 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
80 cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
81 cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
82 cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
83 cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
84 cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
85 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
86 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
87 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
88 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
89 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0xFF, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
90 cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00, cast(byte)0x00 |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
91 ]; |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
92 } |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
93 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
94 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
95 * the handle to the OS cursor resource |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
96 * (Warning: This field is platform dependent) |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
97 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
98 * <b>IMPORTANT:</b> This field is <em>not</em> part of the DWT |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
99 * public API. It is marked public only so that it can be shared |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
100 * within the packages provided by DWT. It is not available on all |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
101 * platforms and should never be accessed from application code. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
102 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
103 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
104 public NSCursor handle; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
105 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
106 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
107 * Prevents uninitialized instances from being created outside the package. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
108 */ |
5 | 109 this(Device device) { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
110 super(device); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
111 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
112 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
113 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
114 * Constructs a new cursor given a device and a style |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
115 * constant describing the desired cursor appearance. |
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 * You must dispose the cursor when it is no longer required. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
118 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
119 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
120 * @param device the device on which to allocate the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
121 * @param style the style of cursor to allocate |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
122 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
123 * @exception IllegalArgumentException <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
124 * <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
125 * <li>ERROR_INVALID_ARGUMENT - when an unknown style is specified</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
126 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
127 * @exception DWTError <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
128 * <li>ERROR_NO_HANDLES - if a handle could not be obtained for cursor creation</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
129 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
130 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
131 * @see DWT#CURSOR_ARROW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
132 * @see DWT#CURSOR_WAIT |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
133 * @see DWT#CURSOR_CROSS |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
134 * @see DWT#CURSOR_APPSTARTING |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
135 * @see DWT#CURSOR_HELP |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
136 * @see DWT#CURSOR_SIZEALL |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
137 * @see DWT#CURSOR_SIZENESW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
138 * @see DWT#CURSOR_SIZENS |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
139 * @see DWT#CURSOR_SIZENWSE |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
140 * @see DWT#CURSOR_SIZEWE |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
141 * @see DWT#CURSOR_SIZEN |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
142 * @see DWT#CURSOR_SIZES |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
143 * @see DWT#CURSOR_SIZEE |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
144 * @see DWT#CURSOR_SIZEW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
145 * @see DWT#CURSOR_SIZENE |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
146 * @see DWT#CURSOR_SIZESE |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
147 * @see DWT#CURSOR_SIZESW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
148 * @see DWT#CURSOR_SIZENW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
149 * @see DWT#CURSOR_UPARROW |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
150 * @see DWT#CURSOR_IBEAM |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
151 * @see DWT#CURSOR_NO |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
152 * @see DWT#CURSOR_HAND |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
153 */ |
5 | 154 public this(Device device, int style) { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
155 super(device); |
45 | 156 NSAutoreleasePool pool = null; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
157 if (!NSThread.isMainThread()) pool = cast(NSAutoreleasePool) (new NSAutoreleasePool()).alloc().init(); |
45 | 158 try { |
159 switch (style) { | |
160 case DWT.CURSOR_HAND: handle = NSCursor.pointingHandCursor(); break; | |
161 case DWT.CURSOR_ARROW: handle = NSCursor.arrowCursor(); break; | |
162 case DWT.CURSOR_WAIT: break; | |
163 case DWT.CURSOR_CROSS: handle = NSCursor.crosshairCursor(); break; | |
164 case DWT.CURSOR_APPSTARTING: handle = NSCursor.arrowCursor(); break; | |
165 case DWT.CURSOR_HELP: handle = NSCursor.crosshairCursor(); break; | |
166 case DWT.CURSOR_SIZEALL: handle = NSCursor.crosshairCursor(); break; | |
167 case DWT.CURSOR_SIZENESW: handle = NSCursor.crosshairCursor(); break; | |
168 case DWT.CURSOR_SIZENS: handle = NSCursor.resizeUpDownCursor(); break; | |
169 case DWT.CURSOR_SIZENWSE: handle = NSCursor.crosshairCursor(); break; | |
170 case DWT.CURSOR_SIZEWE: handle = NSCursor.resizeLeftRightCursor(); break; | |
171 case DWT.CURSOR_SIZEN: handle = NSCursor.resizeUpCursor(); break; | |
172 case DWT.CURSOR_SIZES: handle = NSCursor.resizeDownCursor(); break; | |
173 case DWT.CURSOR_SIZEE: handle = NSCursor.resizeRightCursor(); break; | |
174 case DWT.CURSOR_SIZEW: handle = NSCursor.resizeLeftCursor(); break; | |
175 case DWT.CURSOR_SIZENE: handle = NSCursor.crosshairCursor(); break; | |
176 case DWT.CURSOR_SIZESE: handle = NSCursor.crosshairCursor(); break; | |
177 case DWT.CURSOR_SIZESW: handle = NSCursor.crosshairCursor(); break; | |
178 case DWT.CURSOR_SIZENW: handle = NSCursor.crosshairCursor(); break; | |
179 case DWT.CURSOR_UPARROW: handle = NSCursor.crosshairCursor(); break; | |
180 case DWT.CURSOR_IBEAM: handle = NSCursor.IBeamCursor(); break; | |
181 case DWT.CURSOR_NO: handle = NSCursor.crosshairCursor(); break; | |
182 default: | |
183 DWT.error(DWT.ERROR_INVALID_ARGUMENT); | |
184 } | |
185 if (handle is null && style is DWT.CURSOR_WAIT) { | |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
186 NSImage nsImage = cast(NSImage)(new NSImage()).alloc(); |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
187 NSBitmapImageRep nsImageRep = cast(NSBitmapImageRep)(new NSBitmapImageRep()).alloc(); |
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
188 handle = cast(NSCursor)(new NSCursor()).alloc(); |
45 | 189 int width = 16, height = 16; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
190 NSSize size = NSSize(); |
45 | 191 size.width = width; |
192 size.height = height; | |
193 nsImage = nsImage.initWithSize(size); | |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
194 nsImageRep = nsImageRep.initWithBitmapDataPlanes(null, width, height, 8, 4, true, false, OS.NSDeviceRGBColorSpace, |
45 | 195 OS.NSAlphaFirstBitmapFormat | OS.NSAlphaNonpremultipliedBitmapFormat, width*4, 32); |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
196 OS.memmove(nsImageRep.bitmapData(), WAIT_SOURCE.ptr, WAIT_SOURCE.length); |
45 | 197 nsImage.addRepresentation(nsImageRep); |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
198 NSPoint point = NSPoint(); |
45 | 199 point.x = 0; |
200 point.y = 0; | |
201 handle = handle.initWithImage(nsImage, point); | |
202 nsImageRep.release(); | |
203 nsImage.release(); | |
204 } else { | |
205 handle.retain(); | |
206 } | |
207 handle.setOnMouseEntered(true); | |
208 init_(); | |
209 } finally { | |
210 if (pool !is null) pool.release(); | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
211 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
212 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
213 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
214 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
215 * Constructs a new cursor given a device, image and mask |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
216 * data describing the desired cursor appearance, and the x |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
217 * and y coordinates of the <em>hotspot</em> (that is, the point |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
218 * within the area covered by the cursor which is considered |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
219 * to be where the on-screen pointer is "pointing"). |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
220 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
221 * The mask data is allowed to be null, but in this case the source |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
222 * must be an ImageData representing an icon that specifies both |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
223 * color data and mask data. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
224 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
225 * You must dispose the cursor when it is no longer required. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
226 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
227 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
228 * @param device the device on which to allocate the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
229 * @param source the color data for the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
230 * @param mask the mask data for the cursor (or null) |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
231 * @param hotspotX the x coordinate of the cursor's hotspot |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
232 * @param hotspotY the y coordinate of the cursor's hotspot |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
233 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
234 * @exception IllegalArgumentException <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
235 * <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
236 * <li>ERROR_NULL_ARGUMENT - if the source is null</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
237 * <li>ERROR_NULL_ARGUMENT - if the mask is null and the source does not have a mask</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
238 * <li>ERROR_INVALID_ARGUMENT - if the source and the mask are not the same |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
239 * size, or if the hotspot is outside the bounds of the image</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
240 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
241 * @exception DWTError <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
242 * <li>ERROR_NO_HANDLES - if a handle could not be obtained for cursor creation</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
243 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
244 */ |
5 | 245 public this(Device device, ImageData source, ImageData mask, int hotspotX, int hotspotY) { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
246 super(device); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
247 if (source is null) DWT.error(DWT.ERROR_NULL_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
248 if (mask is null) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
249 if (source.getTransparencyType() !is DWT.TRANSPARENCY_MASK) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
250 DWT.error(DWT.ERROR_NULL_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
251 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
252 mask = source.getTransparencyMask(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
253 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
254 /* Check the bounds. Mask must be the same size as source */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
255 if (mask.width !is source.width || mask.height !is source.height) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
256 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
257 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
258 /* Check the hotspots */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
259 if (hotspotX >= source.width || hotspotX < 0 || |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
260 hotspotY >= source.height || hotspotY < 0) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
261 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
262 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
263 byte[] data = new byte[source.width * source.height * 4]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
264 for (int y = 0; y < source.height; y++) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
265 int offset = y * source.width * 4; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
266 for (int x = 0; x < source.width; x++) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
267 int pixel = source.getPixel(x, y); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
268 int maskPixel = mask.getPixel(x, y); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
269 if (pixel is 0 && maskPixel is 0) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
270 // BLACK |
7 | 271 data[offset] = cast(byte)0xFF; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
272 } else if (pixel is 0 && maskPixel is 1) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
273 // WHITE - cursor color |
7 | 274 data[offset] = data[offset + 1] = data[offset + 2] = data[offset + 3] = cast(byte)0xFF; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
275 } else if (pixel is 1 && maskPixel is 0) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
276 // SCREEN |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
277 } else { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
278 /* |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
279 * Feature in the Macintosh. It is not possible to have |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
280 * the reverse screen case using NSCursor. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
281 * Reverse screen will be the same as screen. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
282 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
283 // REVERSE SCREEN -> SCREEN |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
284 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
285 offset += 4; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
286 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
287 } |
45 | 288 NSAutoreleasePool pool = null; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
289 if (!NSThread.isMainThread()) pool = cast(NSAutoreleasePool) (new NSAutoreleasePool()).alloc().init(); |
45 | 290 try { |
291 createNSCursor(hotspotX, hotspotY, data, source.width, source.height); | |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
292 init_(); |
45 | 293 } finally { |
294 if (pool !is null) pool.release(); | |
295 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
296 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
297 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
298 void createNSCursor(int hotspotX, int hotspotY, byte[] buffer, int width, int height) { |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
299 ubyte** dummy; |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
300 NSImage nsImage = cast(NSImage)(new NSImage()).alloc(); |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
301 NSBitmapImageRep nsImageRep = cast(NSBitmapImageRep)(new NSBitmapImageRep()).alloc(); |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
302 handle = cast(NSCursor)(new NSCursor()).alloc(); |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
303 NSSize size = NSSize(); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
304 size.width = width; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
305 size.height = height; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
306 nsImage = nsImage.initWithSize(size); |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
307 nsImageRep = nsImageRep.initWithBitmapDataPlanes(null, width, height, |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
308 8, 4, true, false, OS.NSDeviceRGBColorSpace, |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
309 OS.NSAlphaFirstBitmapFormat | OS.NSAlphaNonpremultipliedBitmapFormat, width * 4, 32); |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
310 OS.memmove(cast(void*) nsImageRep.bitmapData(), buffer.ptr, buffer.length); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
311 nsImage.addRepresentation(nsImageRep); |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
312 NSPoint point = NSPoint(); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
313 point.x = hotspotX; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
314 point.y = hotspotY; |
45 | 315 handle = handle.initWithImage(nsImage, point); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
316 nsImageRep.release(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
317 nsImage.release(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
318 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
319 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
320 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
321 * Constructs a new cursor given a device, image data describing |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
322 * the desired cursor appearance, and the x and y coordinates of |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
323 * the <em>hotspot</em> (that is, the point within the area |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
324 * covered by the cursor which is considered to be where the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
325 * on-screen pointer is "pointing"). |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
326 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
327 * You must dispose the cursor when it is no longer required. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
328 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
329 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
330 * @param device the device on which to allocate the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
331 * @param source the image data for the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
332 * @param hotspotX the x coordinate of the cursor's hotspot |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
333 * @param hotspotY the y coordinate of the cursor's hotspot |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
334 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
335 * @exception IllegalArgumentException <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
336 * <li>ERROR_NULL_ARGUMENT - if device is null and there is no current device</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
337 * <li>ERROR_NULL_ARGUMENT - if the image is null</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
338 * <li>ERROR_INVALID_ARGUMENT - if the hotspot is outside the bounds of the |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
339 * image</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
340 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
341 * @exception DWTError <ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
342 * <li>ERROR_NO_HANDLES - if a handle could not be obtained for cursor creation</li> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
343 * </ul> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
344 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
345 * @since 3.0 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
346 */ |
5 | 347 public this(Device device, ImageData source, int hotspotX, int hotspotY) { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
348 super(device); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
349 if (source is null) DWT.error(DWT.ERROR_NULL_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
350 if (hotspotX >= source.width || hotspotX < 0 || |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
351 hotspotY >= source.height || hotspotY < 0) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
352 DWT.error(DWT.ERROR_INVALID_ARGUMENT); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
353 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
354 byte[] data = new byte[source.width * source.height * 4]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
355 PaletteData palette = source.palette; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
356 if (palette.isDirect) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
357 ImageData.blit(ImageData.BLIT_SRC, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
358 source.data, source.depth, source.bytesPerLine, source.getByteOrder(), 0, 0, source.width, source.height, palette.redMask, palette.greenMask, palette.blueMask, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
359 ImageData.ALPHA_OPAQUE, null, 0, 0, 0, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
360 data, 32, source.width * 4, ImageData.MSB_FIRST, 0, 0, source.width, source.height, 0xFF0000, 0xFF00, 0xFF, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
361 false, false); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
362 } else { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
363 RGB[] rgbs = palette.getRGBs(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
364 int length = rgbs.length; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
365 byte[] srcReds = new byte[length]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
366 byte[] srcGreens = new byte[length]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
367 byte[] srcBlues = new byte[length]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
368 for (int i = 0; i < rgbs.length; i++) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
369 RGB rgb = rgbs[i]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
370 if (rgb is null) continue; |
7 | 371 srcReds[i] = cast(byte)rgb.red; |
372 srcGreens[i] = cast(byte)rgb.green; | |
373 srcBlues[i] = cast(byte)rgb.blue; | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
374 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
375 ImageData.blit(ImageData.BLIT_SRC, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
376 source.data, source.depth, source.bytesPerLine, source.getByteOrder(), 0, 0, source.width, source.height, srcReds, srcGreens, srcBlues, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
377 ImageData.ALPHA_OPAQUE, null, 0, 0, 0, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
378 data, 32, source.width * 4, ImageData.MSB_FIRST, 0, 0, source.width, source.height, 0xFF0000, 0xFF00, 0xFF, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
379 false, false); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
380 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
381 if (source.maskData !is null || source.transparentPixel !is -1) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
382 ImageData mask = source.getTransparencyMask(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
383 byte[] maskData = mask.data; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
384 int maskBpl = mask.bytesPerLine; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
385 int offset = 0, maskOffset = 0; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
386 for (int y = 0; y<source.height; y++) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
387 for (int x = 0; x<source.width; x++) { |
7 | 388 data[offset] = ((maskData[maskOffset + (x >> 3)]) & (1 << (7 - (x & 0x7)))) !is 0 ? cast(byte)0xff : 0; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
389 offset += 4; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
390 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
391 maskOffset += maskBpl; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
392 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
393 } else if (source.alpha !is -1) { |
7 | 394 byte alpha = cast(byte)source.alpha; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
395 for (int i=0; i<data.length; i+=4) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
396 data[i] = alpha; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
397 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
398 } else if (source.alphaData !is null) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
399 byte[] alphaData = source.alphaData; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
400 for (int i=0; i<data.length; i+=4) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
401 data[i] = alphaData[i/4]; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
402 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
403 } |
45 | 404 NSAutoreleasePool pool = null; |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
405 if (!NSThread.isMainThread()) pool = cast(NSAutoreleasePool) (new NSAutoreleasePool()).alloc().init(); |
45 | 406 try { |
407 createNSCursor(hotspotX, hotspotY, data, source.width, source.height); | |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
408 init_(); |
45 | 409 } finally { |
410 if (pool !is null) pool.release(); | |
411 } | |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
412 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
413 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
414 void destroy() { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
415 handle.release(); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
416 handle = null; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
417 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
418 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
419 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
420 * Compares the argument to the receiver, and returns true |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
421 * if they represent the <em>same</em> object using a class |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
422 * specific comparison. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
423 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
424 * @param object the object to compare with this object |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
425 * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
426 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
427 * @see #hashCode |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
428 */ |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
429 public int opEquals (Object object) { |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
430 if (object is this) return true; |
8 | 431 if (!( null !is cast(Cursor)object )) return false; |
7 | 432 Cursor cursor = cast(Cursor) object; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
433 return device is cursor.device && handle is cursor.handle; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
434 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
435 |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
436 alias opEquals equals; |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
437 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
438 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
439 * Returns an integer hash code for the receiver. Any two |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
440 * objects that return <code>true</code> when passed to |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
441 * <code>equals</code> must return the same value for this |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
442 * method. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
443 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
444 * @return the receiver's hash |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
445 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
446 * @see #equals |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
447 */ |
36
db5a898b2119
Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
35
diff
changeset
|
448 public hash_t toHash () { |
46
cfa563df4fdd
Updated Widget and Display to 3.514
Jacob Carlborg <doob@me.com>
parents:
45
diff
changeset
|
449 return handle !is null ? cast(hash_t) handle.id : 0; |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
450 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
451 |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
452 alias toHash hashCode; |
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
453 |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
454 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
455 * Returns <code>true</code> if the cursor has been disposed, |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
456 * and <code>false</code> otherwise. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
457 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
458 * This method gets the dispose state for the cursor. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
459 * When a cursor has been disposed, it is an error to |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
460 * invoke any other method using the cursor. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
461 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
462 * @return <code>true</code> when the cursor is disposed and <code>false</code> otherwise |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
463 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
464 public bool isDisposed() { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
465 return handle is null; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
466 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
467 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
468 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
469 * Returns a string containing a concise, human-readable |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
470 * description of the receiver. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
471 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
472 * @return a string representation of the receiver |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
473 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
474 public String toString () { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
475 if (isDisposed()) return "Cursor {*DISPOSED*}"; |
35
7d135fe0caf2
Ported dwt.graphics.Cursor and dwt.widgets.MenuItem
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
8
diff
changeset
|
476 return Format("Cursor {{}{}" , handle , "}"); |
0
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
477 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
478 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
479 /** |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
480 * Invokes platform specific functionality to allocate a new cursor. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
481 * <p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
482 * <b>IMPORTANT:</b> This method is <em>not</em> part of the public |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
483 * API for <code>Cursor</code>. It is marked public only so that it |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
484 * can be shared within the packages provided by DWT. It is not |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
485 * available on all platforms, and should never be called from |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
486 * application code. |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
487 * </p> |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
488 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
489 * @param device the device on which to allocate the color |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
490 * @param handle the handle for the cursor |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
491 * |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
492 * @private |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
493 */ |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
494 public static Cursor cocoa_new(Device device, NSCursor handle) { |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
495 Cursor cursor = new Cursor(device); |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
496 cursor.handle = handle; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
497 return cursor; |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
498 } |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
499 |
380af2bdd8e5
Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff
changeset
|
500 } |