aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java
diff options
context:
space:
mode:
authorOlga Rodimina <rodimina@redhat.com>2004-01-15 22:00:01 +0000
committerOlga Rodimina <rodimina@redhat.com>2004-01-15 22:00:01 +0000
commitdae7c5bae9add9c5fe0e176444586dc827b1f1cf (patch)
tree04fa9293eb9db598a3269d891542aa1b07c18d6b /libjava/gnu/java
parent9dbaf9b4741d0e6bb7d126e0ded5b4cf47f3a41d (diff)
* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
Implemented rendering hints related methods. (getDefaultHints): New helper method. Returns default rendering hints. (walkPath): changed to normalize path if the KEY_STROKE_CONTROL key is in "normalize" mode. (draw3DRect): changed coordinates of rectangle by +0.5 if in "normalize" mode. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@75943 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java')
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java65
1 files changed, 60 insertions, 5 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java b/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
index cb6ccba61b4..fbdf4d9bcd1 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
@@ -44,6 +44,8 @@ import java.awt.font.*;
import java.awt.color.*;
import java.awt.image.*;
import java.awt.image.renderable.*;
+import java.util.HashMap;
+import java.util.Map;
import java.text.AttributedCharacterIterator;
import java.util.Map;
@@ -81,6 +83,7 @@ public class GdkGraphics2D extends Graphics2D
private AffineTransform transform;
private GtkComponentPeer component;
private Font font;
+ private RenderingHints hints;
private Stack stateStack;
@@ -108,6 +111,7 @@ public class GdkGraphics2D extends Graphics2D
{
paint = g.paint;
stroke = g.stroke;
+ hints = g.hints;
if (g.fg.getAlpha() != -1)
fg = new Color (g.fg.getRed (), g.fg.getGreen (),
@@ -154,6 +158,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ());
setStroke (new BasicStroke ());
+ setRenderingHints (new HashMap ());
stateStack = new Stack();
}
@@ -169,6 +174,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ());
setStroke (new BasicStroke ());
+ setRenderingHints (new HashMap ());
stateStack = new Stack ();
}
@@ -335,6 +341,29 @@ public class GdkGraphics2D extends Graphics2D
}
+ private Map getDefaultHints()
+ {
+ HashMap defaultHints = new HashMap ();
+
+ defaultHints.put (RenderingHints.KEY_TEXT_ANTIALIASING,
+ RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+
+ defaultHints.put (RenderingHints.KEY_STROKE_CONTROL,
+ RenderingHints.VALUE_STROKE_DEFAULT);
+
+ defaultHints.put (RenderingHints.KEY_FRACTIONALMETRICS,
+ RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
+
+ defaultHints.put (RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_OFF);
+
+ defaultHints.put (RenderingHints.KEY_RENDERING,
+ RenderingHints.VALUE_RENDER_DEFAULT);
+
+ return defaultHints;
+
+ }
+
//////////////////////////////////////////////////
////// Implementation of Graphics2D Methods //////
//////////////////////////////////////////////////
@@ -351,6 +380,14 @@ public class GdkGraphics2D extends Graphics2D
stateSave ();
cairoNewPath ();
+
+ boolean normalize;
+ normalize = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE)
+ || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT);
+
+ if (normalize)
+ translate (0.5,0.5);
+
if (s instanceof Rectangle2D)
{
Rectangle2D r = (Rectangle2D)s;
@@ -359,6 +396,10 @@ public class GdkGraphics2D extends Graphics2D
else
walkPath (s.getPathIterator (null));
cairoStroke ();
+
+ if (normalize)
+ translate (-0.5,-0.5);
+
stateRestore ();
}
@@ -640,6 +681,19 @@ public class GdkGraphics2D extends Graphics2D
stateSave ();
cairoNewPath ();
+
+ boolean normalize;
+ normalize = hints.containsValue (RenderingHints.VALUE_STROKE_NORMALIZE)
+ || hints.containsValue (RenderingHints.VALUE_STROKE_DEFAULT);
+
+ if (normalize)
+ {
+ x1 += 0.5;
+ y1 += 0.5;
+ x2 += 0.5;
+ y2 += 0.5;
+ }
+
setColor (light);
cairoMoveTo (x1, y1);
cairoLineTo (x2, y1);
@@ -1006,27 +1060,28 @@ public class GdkGraphics2D extends Graphics2D
public void setRenderingHint(RenderingHints.Key hintKey,
Object hintValue)
{
- throw new java.lang.UnsupportedOperationException ();
+ hints.put (hintKey, hintValue);
}
public Object getRenderingHint(RenderingHints.Key hintKey)
{
- throw new java.lang.UnsupportedOperationException ();
+ return hints.get (hintKey);
}
public void setRenderingHints(Map hints)
{
- throw new java.lang.UnsupportedOperationException ();
+ this.hints = new RenderingHints (getDefaultHints ());
+ this.hints.add (new RenderingHints (hints));
}
public void addRenderingHints(Map hints)
{
- throw new java.lang.UnsupportedOperationException ();
+ this.hints.add (new RenderingHints (hints));
}
public RenderingHints getRenderingHints()
{
- throw new java.lang.UnsupportedOperationException ();
+ return hints;
}
public Composite getComposite()