28
|
1 /*******************************************************************************
|
|
2 * Copyright (c) 2000, 2004 IBM Corporation and others.
|
|
3 * All rights reserved. This program and the accompanying materials
|
|
4 * are made available under the terms of the Eclipse Public License v1.0
|
|
5 * which accompanies this distribution, and is available at
|
|
6 * http://www.eclipse.org/legal/epl-v10.html
|
|
7 *
|
|
8 * Contributors:
|
|
9 * IBM Corporation - initial API and implementation
|
|
10 * D Port:
|
|
11 * Thomas Demmer <t_demmer AT web DOT de>
|
|
12 *******************************************************************************/
|
|
13 module org.eclipse.swt.snippets.Snippet92;
|
|
14
|
|
15 /*
|
|
16 * Cursor example snippet: create a cursor from a source and a mask
|
|
17 *
|
|
18 * For a list of all SWT example snippets see
|
|
19 * http://www.eclipse.org/swt/snippets/
|
|
20 */
|
|
21 import org.eclipse.swt.SWT;
|
|
22 import org.eclipse.swt.events.PaintEvent;
|
|
23 import org.eclipse.swt.events.PaintListener;
|
|
24 import org.eclipse.swt.graphics.Color;
|
|
25 import org.eclipse.swt.graphics.Cursor;
|
|
26 import org.eclipse.swt.graphics.GC;
|
|
27 import org.eclipse.swt.graphics.Image;
|
|
28 import org.eclipse.swt.graphics.ImageData;
|
|
29 import org.eclipse.swt.graphics.PaletteData;
|
|
30 import org.eclipse.swt.widgets.Display;
|
|
31 import org.eclipse.swt.widgets.Shell;
|
|
32
|
|
33 import java.lang.all;
|
|
34
|
|
35
|
|
36 void main (String [] args) {
|
|
37 Display display = new Display();
|
|
38 Color white = display.getSystemColor (SWT.COLOR_WHITE);
|
|
39 Color black = display.getSystemColor (SWT.COLOR_BLACK);
|
|
40
|
|
41 //Create a source ImageData of depth 1 (monochrome)
|
|
42 PaletteData palette = new PaletteData ([white.getRGB(), black.getRGB()]);
|
|
43 ImageData sourceData = new ImageData (20, 20, 1, palette);
|
|
44 for (int i = 0; i < 10; i ++) {
|
|
45 for (int j = 0; j < 20; j++) {
|
|
46 sourceData.setPixel(i, j, 1);
|
|
47 }
|
|
48 }
|
|
49
|
|
50 //Create a mask ImageData of depth 1 (monochrome)
|
|
51 palette = new PaletteData ([white.getRGB(), black.getRGB()]);
|
|
52 ImageData maskData = new ImageData (20, 20, 1, palette);
|
|
53 for (int i = 0; i < 20; i ++) {
|
|
54 for (int j = 0; j < 10; j++) {
|
|
55 maskData.setPixel(i, j, 1);
|
|
56 }
|
|
57 }
|
|
58 //Create cursor
|
|
59 Cursor cursor = new Cursor(display, sourceData, maskData, 10, 10);
|
|
60
|
|
61 Shell shell = new Shell(display);
|
|
62 Image source = new Image (display,sourceData);
|
|
63 Image mask = new Image (display, maskData);
|
|
64 //Draw source and mask just to show what they look like
|
|
65 shell.addPaintListener(new class() PaintListener{
|
|
66 void paintControl(PaintEvent e) {
|
|
67 GC gc = e.gc;
|
|
68 gc.drawString("source: ", 10, 10);
|
|
69 gc.drawImage(source, 0, 0, 20, 20, 60, 10, 20, 20);
|
|
70 gc.drawString("mask: ",10, 40);
|
|
71 gc.drawImage(mask, 0, 0, 20, 20, 60, 40, 20, 20);
|
|
72 }
|
|
73 });
|
|
74 shell.setSize(150, 150);
|
|
75 shell.open();
|
|
76 shell.setCursor(cursor);
|
|
77
|
|
78 while (!shell.isDisposed()) {
|
|
79 if (!display.readAndDispatch())
|
|
80 display.sleep();
|
|
81 }
|
|
82 cursor.dispose();
|
|
83 source.dispose();
|
|
84 mask.dispose();
|
|
85 display.dispose();
|
|
86 }
|
|
87
|