142 private native static void initIDs();
143 native static void waitForEvents(long nextTaskTime);
144 static Thread toolkitThread;
145 static boolean isToolkitThread() {
146 return Thread.currentThread() == toolkitThread;
147 }
148
149 static void initSecurityWarning() {
150 // Enable warning only for internal builds
151 String runtime = AccessController.doPrivileged(
152 new GetPropertyAction("java.runtime.version"));
153 securityWarningEnabled = (runtime != null && runtime.contains("internal"));
154 }
155
156 static boolean isSecurityWarningEnabled() {
157 return securityWarningEnabled;
158 }
159
160 static native void awt_output_flush();
161
162 static final void awtFUnlock() {
163 awtUnlock();
164 awt_output_flush();
165 }
166
167
168 public native void nativeLoadSystemColors(int[] systemColors);
169
170 static UIDefaults getUIDefaults() {
171 if (uidefaults == null) {
172 initUIDefaults();
173 }
174 return uidefaults;
175 }
176
177 public void loadSystemColors(int[] systemColors) {
178 nativeLoadSystemColors(systemColors);
179 MotifColorUtilities.loadSystemColors(systemColors);
180 }
181
182
859 * The current implementation of disabling background erasing for
860 * canvases is that we don't set any native background color
861 * (with XSetWindowBackground) for the canvas window. However,
862 * this color is set in the peer constructor - see
863 * XWindow.postInit() for details. That's why this method from
864 * SunToolkit is not overridden in XToolkit: it's too late to
865 * disable background erasing :(
866 */
867 /*
868 @Override
869 public void disableBackgroundErase(Canvas canvas) {
870 XCanvasPeer peer = (XCanvasPeer)canvas.getPeer();
871 if (peer == null) {
872 throw new IllegalStateException("Canvas must have a valid peer");
873 }
874 peer.disableBackgroundErase();
875 }
876 */
877
878 // Need this for XMenuItemPeer.
879 protected static final Object targetToPeer(Object target) {
880 Object p=null;
881 if (target != null && !GraphicsEnvironment.isHeadless()) {
882 p = specialPeerMap.get(target);
883 }
884 if (p != null) return p;
885 else
886 return SunToolkit.targetToPeer(target);
887 }
888
889 // Need this for XMenuItemPeer.
890 protected static final void targetDisposedPeer(Object target, Object peer) {
891 SunToolkit.targetDisposedPeer(target, peer);
892 }
893
894 public RobotPeer createRobot(Robot target, GraphicsDevice screen) {
895 return new XRobotPeer(screen.getDefaultConfiguration());
896 }
897
898
899 /*
900 * On X, support for dynamic layout on resizing is governed by the
901 * window manager. If the window manager supports it, it happens
902 * automatically. The setter method for this property is
903 * irrelevant on X.
904 */
905 public void setDynamicLayout(boolean b) {
906 dynamicLayoutSetting = b;
907 }
908
909 protected boolean isDynamicLayoutSet() {
910 return dynamicLayoutSetting;
|
142 private native static void initIDs();
143 native static void waitForEvents(long nextTaskTime);
144 static Thread toolkitThread;
145 static boolean isToolkitThread() {
146 return Thread.currentThread() == toolkitThread;
147 }
148
149 static void initSecurityWarning() {
150 // Enable warning only for internal builds
151 String runtime = AccessController.doPrivileged(
152 new GetPropertyAction("java.runtime.version"));
153 securityWarningEnabled = (runtime != null && runtime.contains("internal"));
154 }
155
156 static boolean isSecurityWarningEnabled() {
157 return securityWarningEnabled;
158 }
159
160 static native void awt_output_flush();
161
162 static void awtFUnlock() {
163 awtUnlock();
164 awt_output_flush();
165 }
166
167
168 public native void nativeLoadSystemColors(int[] systemColors);
169
170 static UIDefaults getUIDefaults() {
171 if (uidefaults == null) {
172 initUIDefaults();
173 }
174 return uidefaults;
175 }
176
177 public void loadSystemColors(int[] systemColors) {
178 nativeLoadSystemColors(systemColors);
179 MotifColorUtilities.loadSystemColors(systemColors);
180 }
181
182
859 * The current implementation of disabling background erasing for
860 * canvases is that we don't set any native background color
861 * (with XSetWindowBackground) for the canvas window. However,
862 * this color is set in the peer constructor - see
863 * XWindow.postInit() for details. That's why this method from
864 * SunToolkit is not overridden in XToolkit: it's too late to
865 * disable background erasing :(
866 */
867 /*
868 @Override
869 public void disableBackgroundErase(Canvas canvas) {
870 XCanvasPeer peer = (XCanvasPeer)canvas.getPeer();
871 if (peer == null) {
872 throw new IllegalStateException("Canvas must have a valid peer");
873 }
874 peer.disableBackgroundErase();
875 }
876 */
877
878 // Need this for XMenuItemPeer.
879 protected static Object targetToPeer(Object target) {
880 Object p=null;
881 if (target != null && !GraphicsEnvironment.isHeadless()) {
882 p = specialPeerMap.get(target);
883 }
884 if (p != null) return p;
885 else
886 return SunToolkit.targetToPeer(target);
887 }
888
889 // Need this for XMenuItemPeer.
890 protected static void targetDisposedPeer(Object target, Object peer) {
891 SunToolkit.targetDisposedPeer(target, peer);
892 }
893
894 public RobotPeer createRobot(Robot target, GraphicsDevice screen) {
895 return new XRobotPeer(screen.getDefaultConfiguration());
896 }
897
898
899 /*
900 * On X, support for dynamic layout on resizing is governed by the
901 * window manager. If the window manager supports it, it happens
902 * automatically. The setter method for this property is
903 * irrelevant on X.
904 */
905 public void setDynamicLayout(boolean b) {
906 dynamicLayoutSetting = b;
907 }
908
909 protected boolean isDynamicLayoutSet() {
910 return dynamicLayoutSetting;
|