1:
37:
38:
39: package ;
40:
41: import ;
42: import ;
43: import ;
44: import ;
45: import ;
46: import ;
47: import ;
48: import ;
49:
50: public class GdkGraphicsEnvironment extends GraphicsEnvironment
51: {
52: private final int native_state = GtkGenericPeer.getUniqueInteger ();
53:
54: private GdkScreenGraphicsDevice defaultDevice;
55:
56: private GdkScreenGraphicsDevice[] devices;
57:
58: static
59: {
60: System.loadLibrary("gtkpeer");
61:
62: initStaticState ();
63: }
64:
65: static native void initStaticState();
66:
67: public GdkGraphicsEnvironment ()
68: {
69: nativeInitState();
70: }
71:
72: native void nativeInitState();
73:
74: public GraphicsDevice[] getScreenDevices ()
75: {
76: if (devices == null)
77: {
78: devices = nativeGetScreenDevices();
79: }
80:
81: return (GraphicsDevice[]) devices.clone();
82: }
83:
84: private native GdkScreenGraphicsDevice[] nativeGetScreenDevices();
85:
86: public GraphicsDevice getDefaultScreenDevice ()
87: {
88: if (GraphicsEnvironment.isHeadless ())
89: throw new HeadlessException ();
90:
91: synchronized (GdkGraphicsEnvironment.class)
92: {
93: if (defaultDevice == null)
94: {
95: defaultDevice = nativeGetDefaultScreenDevice();
96: }
97: }
98:
99: return defaultDevice;
100: }
101:
102: private native GdkScreenGraphicsDevice nativeGetDefaultScreenDevice();
103:
104: public Graphics2D createGraphics (BufferedImage image)
105: {
106: DataBuffer db = image.getRaster().getDataBuffer();
107: if(db instanceof CairoSurface)
108: return ((CairoSurface)db).getGraphics();
109:
110: return new BufferedImageGraphics( image );
111: }
112:
113: private native int nativeGetNumFontFamilies();
114: private native void nativeGetFontFamilies(String[] family_names);
115:
116: public Font[] getAllFonts ()
117: {
118: throw new java.lang.UnsupportedOperationException ();
119: }
120:
121: public String[] getAvailableFontFamilyNames ()
122: {
123: String[] family_names;
124: int array_size;
125:
126: array_size = nativeGetNumFontFamilies();
127: family_names = new String[array_size];
128:
129: nativeGetFontFamilies(family_names);
130: return family_names;
131: }
132:
133: public String[] getAvailableFontFamilyNames (Locale l)
134: {
135: throw new java.lang.UnsupportedOperationException ();
136: }
137:
138:
141: native int[] getMouseCoordinates();
142: }