annotate dwtx/jface/resource/ColorDescriptor.d @ 8:a3ff22a98bef

Dialog
author Frank Benoit <benoit@tionex.de>
date Sat, 29 Mar 2008 01:25:27 +0100
parents
children ea8ff534f622
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2004, 2006 IBM Corporation and others.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.jface.resource.ColorDescriptor;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwtx.jface.resource.DeviceResourceDescriptor;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.resource.RGBColorDescriptor;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.graphics.Color;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.graphics.Device;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.graphics.RGB;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwt.dwthelper.utils;
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * Lightweight descriptor for an DWT color. Each ColorDescriptor will create a particular DWT
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 * Color on demand. This object will be compared so hashCode(...) and equals(...) must
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 * return meaningful values.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 * @since 3.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 public abstract class ColorDescriptor : DeviceResourceDescriptor {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * Creates a ColorDescriptor from an existing Color, given the Device associated
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * with the original Color. This is the usual way to convert a Color into
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * a ColorDescriptor. Note that the returned ColorDescriptor depends on the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * original Color, and disposing the Color will invalidate the ColorDescriptor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * @deprecated use {@link ColorDescriptor#createFrom(Color)}
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * @since 3.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * @param toCreate Color to convert into a ColorDescriptor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * @param originalDevice this must be the same Device that was passed into the
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * original Color's constructor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * @return a newly created ColorDescriptor that describes the given Color.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 public static ColorDescriptor createFrom(Color toCreate, Device originalDevice) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 return new RGBColorDescriptor(toCreate);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 * Creates a ColorDescriptor from an existing color.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * The returned ColorDescriptor depends on the original Color. Disposing
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * the original colour while the color descriptor is still in use may cause
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * DWT to throw a graphic disposed exception.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * @since 3.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * @param toCreate Color to generate a ColorDescriptor from
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * @return a newly created ColorDescriptor
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 public static ColorDescriptor createFrom(Color toCreate) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 return new RGBColorDescriptor(toCreate);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * Returns a color descriptor for the given RGB values
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * @since 3.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * @param toCreate RGB values to create
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * @return a new ColorDescriptor
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 public static ColorDescriptor createFrom(RGB toCreate) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 return new RGBColorDescriptor(toCreate);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * Returns the Color described by this descriptor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 * @param device DWT device on which to allocate the Color
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * @return a newly allocated DWT Color object (never null)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * @throws DeviceResourceException if unable to allocate the Color
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 public abstract Color createColor(Device device);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 /**
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * Undoes whatever was done by createColor.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * @since 3.1
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 *
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * @param toDestroy a Color that was previously allocated by an equal ColorDescriptor
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 public abstract void destroyColor(Color toDestroy);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * @see dwtx.jface.resource.DeviceResourceDescriptor#createResource(dwt.graphics.Device)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 public final Object createResource(Device device){
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 return createColor(device);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 /* (non-Javadoc)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * @see dwtx.jface.resource.DeviceResourceDescriptor#destroyResource(java.lang.Object)
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 */
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 public final void destroyResource(Object previouslyCreatedObject) {
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 destroyColor(cast(Color)previouslyCreatedObject);
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 }
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 }