diff options
author | Roman Kennke <roman@kennke.org> | 2006-11-23 20:30:28 +0000 |
---|---|---|
committer | Roman Kennke <roman@kennke.org> | 2006-11-23 20:30:28 +0000 |
commit | ba382cbfedb8dce61812052a16bf555d489592e9 (patch) | |
tree | fa2aba198b8c4260898c4cec58587f8cad083812 /gnu | |
parent | d8e534fcab9c98b08ede0b921ba2fb47db0837ea (diff) | |
download | classpath-ba382cbfedb8dce61812052a16bf555d489592e9.tar.gz |
2006-11-23 Roman Kennke <kennke@aicas.com>
* gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java
(createGraphics): Use constructor to create new instance of
BufferedImageGraphics.
* java/awt/Toolkit.java
(getDefaultToolkit): Really try to get a real toolkit. Only
use HeadlessToolkit if no other is available.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(checkHeadless): New helper method. Checks for headless environment
and throws HeadlessException if appropriate.
(createButton): Check for headless.
(createCanvas): Check for headless.
(createCheckbox): Check for headless.
(createCheckboxMenuItem): Check for headless.
(createChoice): Check for headless.
(createDialog): Check for headless.
(createDragGestureRecognizer): Check for headless.
(createDragSourceContextPeer): Check for headless.
(createEmbeddedWindow): Check for headless.
(createFileDialog): Check for headless.
(createFrame): Check for headless.
(createCheckbox): Check for headless.
(createLabel): Check for headless.
(createList): Check for headless.
(createMenu): Check for headless.
(createMenuBar): Check for headless.
(createMenuItem): Check for headless.
(createPanel): Check for headless.
(createPopupMenu): Check for headless.
(createScrollbar): Check for headless.
(createScrollPane): Check for headless.
(createTextArea): Check for headless.
(createTextField): Check for headless.
(createWindow): Check for headless.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkToolkit.java | 34 | ||||
-rw-r--r-- | gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java | 5 |
2 files changed, 36 insertions, 3 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkToolkit.java b/gnu/java/awt/peer/gtk/GtkToolkit.java index 81367d6b0..26724206d 100644 --- a/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -62,6 +62,7 @@ import java.awt.FontMetrics; import java.awt.Frame; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; import java.awt.Image; import java.awt.Label; import java.awt.List; @@ -83,6 +84,7 @@ import java.awt.dnd.DragGestureEvent; import java.awt.dnd.DragGestureListener; import java.awt.dnd.DragGestureRecognizer; import java.awt.dnd.DragSource; +import java.awt.dnd.InvalidDnDOperationException; import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.im.InputMethodHighlight; import java.awt.image.ColorModel; @@ -418,109 +420,130 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit protected ButtonPeer createButton (Button b) { + checkHeadless(); return new GtkButtonPeer (b); } protected CanvasPeer createCanvas (Canvas c) { + checkHeadless(); return new GtkCanvasPeer (c); } protected CheckboxPeer createCheckbox (Checkbox cb) { + checkHeadless(); return new GtkCheckboxPeer (cb); } protected CheckboxMenuItemPeer createCheckboxMenuItem (CheckboxMenuItem cmi) { + checkHeadless(); return new GtkCheckboxMenuItemPeer (cmi); } protected ChoicePeer createChoice (Choice c) { + checkHeadless(); return new GtkChoicePeer (c); } protected DialogPeer createDialog (Dialog d) { + checkHeadless(); GtkMainThread.createWindow(); return new GtkDialogPeer (d); } protected FileDialogPeer createFileDialog (FileDialog fd) { + checkHeadless(); return new GtkFileDialogPeer (fd); } protected FramePeer createFrame (Frame f) { + checkHeadless(); GtkMainThread.createWindow(); return new GtkFramePeer (f); } protected LabelPeer createLabel (Label label) { + checkHeadless(); return new GtkLabelPeer (label); } protected ListPeer createList (List list) { + checkHeadless(); return new GtkListPeer (list); } protected MenuPeer createMenu (Menu m) { + checkHeadless(); return new GtkMenuPeer (m); } protected MenuBarPeer createMenuBar (MenuBar mb) { + checkHeadless(); return new GtkMenuBarPeer (mb); } protected MenuItemPeer createMenuItem (MenuItem mi) { + checkHeadless(); return new GtkMenuItemPeer (mi); } protected PanelPeer createPanel (Panel p) { + checkHeadless(); return new GtkPanelPeer (p); } protected PopupMenuPeer createPopupMenu (PopupMenu target) { + checkHeadless(); return new GtkPopupMenuPeer (target); } protected ScrollPanePeer createScrollPane (ScrollPane sp) { + checkHeadless(); return new GtkScrollPanePeer (sp); } protected ScrollbarPeer createScrollbar (Scrollbar sb) { + checkHeadless(); return new GtkScrollbarPeer (sb); } protected TextAreaPeer createTextArea (TextArea ta) { + checkHeadless(); return new GtkTextAreaPeer (ta); } protected TextFieldPeer createTextField (TextField tf) { + checkHeadless(); return new GtkTextFieldPeer (tf); } protected WindowPeer createWindow (Window w) { + checkHeadless(); GtkMainThread.createWindow(); return new GtkWindowPeer (w); } public EmbeddedWindowPeer createEmbeddedWindow (EmbeddedWindow w) { + checkHeadless(); GtkMainThread.createWindow(); return new GtkEmbeddedWindowPeer (w); } @@ -590,6 +613,8 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit public DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent e) { + if (GraphicsEnvironment.isHeadless()) + throw new InvalidDnDOperationException(); return new GtkDragSourceContextPeer(e); } @@ -599,7 +624,8 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit int actions, DragGestureListener l) { - if (recognizer.getName().equals("java.awt.dnd.MouseDragGestureRecognizer")) + if (recognizer.getName().equals("java.awt.dnd.MouseDragGestureRecognizer") + && ! GraphicsEnvironment.isHeadless()) { GtkMouseDragGestureRecognizer gestureRecognizer = new GtkMouseDragGestureRecognizer(ds, comp, actions, l); @@ -659,6 +685,12 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit || state == Frame.MAXIMIZED_BOTH; } + private void checkHeadless() + { + if (GraphicsEnvironment.isHeadless()) + throw new HeadlessException(); + } + public native int getMouseNumberOfButtons(); } // class GtkToolkit diff --git a/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java b/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java index 6ae2bf141..b3eeb1baa 100644 --- a/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java +++ b/gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java @@ -62,7 +62,8 @@ public class HeadlessGraphicsEnvironment { // Try to get a CairoGraphics (accellerated) when available. Do this // via reflection to avoid having a hard compile time dependency. - Class cairoSurfaceCl = Class.forName("gnu.java.awt.peer.gtk.CairoSurface"); + Class cairoSurfaceCl = + Class.forName("gnu.java.awt.peer.gtk.CairoSurface"); Raster raster = image.getRaster(); if (cairoSurfaceCl.isInstance(raster)) { @@ -76,7 +77,7 @@ public class HeadlessGraphicsEnvironment Class.forName("gnu.java.awt.peer.gtk.BufferedImageGraphics"); Constructor bigC = bigCl.getConstructor(new Class[]{BufferedImage.class }); - g2d = (Graphics2D) bigCl.newInstance(); + g2d = (Graphics2D) bigC.newInstance(new Object[]{ image}); } } catch (Exception ex) |